我正在寻找redux todomvc 代码。什么是static
在关键字static propTypes
?谢谢
更新
不知道为什么投反对票?这个帖子是不是太简单了?欢迎提出意见。谢谢。我希望我可以删除这个帖子。
我正在寻找redux todomvc 代码。什么是static
在关键字static propTypes
?谢谢
更新
不知道为什么投反对票?这个帖子是不是太简单了?欢迎提出意见。谢谢。我希望我可以删除这个帖子。
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
不是组件实例所独有的。它们也不会因组件而改变。因此,让它们成为类的静态成员是有意义的。