小编典典

反应:为什么静态propTypes

reactjs

我正在寻找redux
todomvc代码
。什么是static关键字static propTypes?谢谢

更新

不知道为什么要投票?这篇文章太简单了吗?欢迎发表评论。谢谢。希望我可以删除这篇文章。


阅读 350

收藏
2020-07-22

共1个答案

小编典典

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之类的编译器。

2020-07-22