我在找redux todomvc codes号.static propTypes
中的static
关键字是什么?
UPDATE
不知道为什么被否决?这篇帖子太简单了吗?欢迎 comments .谢谢我希望我能删除这篇帖子.
我在找redux todomvc codes号.static propTypes
中的static
关键字是什么?
UPDATE
不知道为什么被否决?这篇帖子太简单了吗?欢迎 comments .谢谢我希望我能删除这篇帖子.
static
不是上一代Javascript("ES5")的一部分,这就是为什么在旧文档中找不到它的原因.然而,除了Internet Explorer(http://caniuse.com/#search=es6)之外,现在所有主要浏览器都支持它和其他"ES6"类语法,如果您使用像Babel这样的transpiler,那么您可以在任何浏览器中使用它.大多数React用户已经在使用Babel来传输他们的JSX,所以React网站(比如Redux TodoMVC)认为这是理所当然的.你可以在这里阅读更多关于static
的信息.
在static propTypes
的情况下,需要在类本身上声明propTypes,而不是在类的实例上声明propTypes.换句话说,如果使用无状态组件:
function Foo() {
this.PropTypes = somePropTypes; // bad
return <div></div>;
}
Foo.PropTypes = somePropTypes; // good
当使用ES6时,等效等级为:
class Foo extends React.Component {
static PropTypes = somePropTypes;
}
顺便说一句,在任何浏览器中都不存在这样的类中定义属性的能力:你需要一个transpiler,比如带有transform-class-properties
插件的Babel.