Reactjs 反应:为什么是静态类型

Reactjs 反应:为什么是静态类型,reactjs,redux,react-proptypes,Reactjs,Redux,React Proptypes,我在看电视。static propTypes中的static关键字是什么? 谢谢 更新 不知道为什么被否决?这篇文章太简单了吗?欢迎评论。谢谢我希望我能删除这篇文章。propTypes不是该组件实例所独有的。它们也不会因每个组件而改变。因此,对他们来说,成为类的静态成员是有意义的。static不是上一代Javascript(“ES5”)的一部分,这就是为什么在旧文档中找不到它的原因。但是,除了InternetExplorer(),现在所有主流浏览器都支持它和其他“ES6”类语法,如果您使用像Ba

我在看电视。
static propTypes
中的
static
关键字是什么? 谢谢

更新


不知道为什么被否决?这篇文章太简单了吗?欢迎评论。谢谢我希望我能删除这篇文章。

propTypes
不是该组件实例所独有的。它们也不会因每个组件而改变。因此,对他们来说,成为类的静态成员是有意义的。

static
不是上一代Javascript(“ES5”)的一部分,这就是为什么在旧文档中找不到它的原因。但是,除了InternetExplorer(),现在所有主流浏览器都支持它和其他“ES6”类语法,如果您使用像Babel这样的transpiler,那么您可以在任何浏览器中使用它。大多数React用户已经在使用Babel来传输他们的JSX,所以React站点(如Redux TodoMVC)认为这是理所当然的。您可以在此处阅读更多有关
静态
的信息

对于
静态propTypes
,需要在类本身上声明propTypes,而不是在类的实例上声明。换句话说,如果您使用无状态组件:

function Foo() { 
    this.PropTypes = somePropTypes; // bad
    return <div></div>;
}
Foo.PropTypes = somePropTypes; // good

顺便说一句,在任何浏览器中都不存在这样的类中定义属性的能力:你需要一个像Babel这样的transpiler,带有
转换类属性插件。

“我希望我可以删除这篇文章。”你不需要这样做。三张反对票对你的分数的影响可以忽略不计,仅仅因为三个人不喜欢你的问题,并不意味着其他人不会觉得这个问题有用。使用过一段时间的人至少有一个问题让他们有点不好意思问(包括我自己),但这个地方的全部目的是帮助人们学习,即使是“糟糕”的问题也可以做到。@machineghost谢谢。事实上,我读了一些javascript文档。我没有找到
static
属性。也许我没有仔细阅读文件。当然,
静态
通常在其他语言中使用。
class Foo extends React.Component {
    static PropTypes = somePropTypes;
}