我正在寻找redux todomvc codes。 static
中的static propTypes
关键字是什么?
感谢
更新
不知道为什么会投票?这篇文章太简单了吗?欢迎评论。谢谢。我希望我可以删除这篇文章。
答案 0 :(得分:32)
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;
}
作为旁注,在类似的类中定义属性的能力在任何浏览器中都不存在(还有):你需要一个像Babel这样的transform-class-properties
插件的转换器。
答案 1 :(得分:11)
rule1:
echo "bye"
rule2:
date
rule3:
@echo "hello"
rule4: rule3 rule1
对于组件的实例不是唯一的。他们也不会改变每个组件。因此,他们成为班级的静态成员是有道理的。