redux todomvcコード を探しています。 static propTypes
のstatic
キーワードとは何ですか?ありがとう
[〜#〜] update [〜#〜]
なぜダウン投票したのか分かりませんか?この投稿は単純すぎますか?コメントを歓迎します。ありがとう。この投稿を削除できるといいのですが。
static
はJavascriptの最後の世代( "ES5")の一部ではなかったため、古いドキュメントにはありません。ただし、Internet Explorer( http://caniuse.com/#search=es6 )を除くすべての主要なブラウザーで、および「ES6」クラスの残りの構文がサポートされるようになりました。 Babelのようなトランスパイラーは、どのブラウザーでも使用できます。ほとんどのReactユーザーは既にBabelを使用してJSXを変換しているため、Reactサイト(Redux TodoMVCなど)は当然のことと考えています。 static
の詳細については、こちらをご覧ください https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static 。
static propTypes
の場合、propTypesはクラスのインスタンスではなく、クラス自体で宣言する必要があります。つまり、ステートレスコンポーネントを使用する場合:
function Foo() {
this.PropTypes = somePropTypes; // bad
return <div></div>;
}
Foo.PropTypes = somePropTypes; // good
ES6クラスを使用する場合、Foo.PropTypes = somePropTypes
に相当するものは次のとおりです。
class Foo extends React.Component {
static PropTypes = somePropTypes;
}
サイドノートとして、そのようなクラスのプロパティを定義する機能はどのブラウザにも存在しません(まだ):transform-class-properties
プラグインを備えたBabelなどのトランスパイラーが必要です。
propTypes
は、コンポーネントのインスタンスに固有ではありません。また、コンポーネントごとに変更されることもありません。したがって、クラスの静的メンバーであることが理にかなっています。