我正在寻找redux todomvc codes。static propTypes
中的static
关键字是什么?谢谢
更新
不知道为什么被否决?这篇文章是不是太简单了?欢迎提出意见。谢谢。我希望我能删除这篇文章。
发布于 2016-11-15 13:24:26
static
不是上一代Javascript ("ES5")的一部分,这就是为什么在旧的文档中找不到它的原因。但是,除了Internet Explorer (http://caniuse.com/#search=es6)之外的所有主要浏览器现在都支持它和其他"ES6“类语法,如果您使用Babel这样的代码转换程序,则可以在任何浏览器中使用它。大多数React用户已经在使用Babel来转换他们的JSX,所以React站点(如Redux TodoMVC)认为这是理所当然的。你可以在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static这里阅读更多关于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。
发布于 2016-11-10 03:31:45
propTypes
并不是组件实例所特有的。它们也不会因每个组件而改变。因此,它们成为类的静态成员是有意义的。
https://stackoverflow.com/questions/40514574
复制相似问题