为什么React.js没有stateTypes?

sea*_*mcl 9 reactjs

React组件在概念上将其数据拆分为props,从其父级传递的不可变数据,以及本地维护的状态,可变数据.我喜欢React的一件事是它支持propTypes形式的有限类型检查.为什么状态没有类似的概念(例如stateTypes)?

小智 7

使用所谓的stateTypes不会给你带来太多好处.

正如官方的React网站所说的propTypes:

随着您的应用程序的增长,确保正确使用您的组件会很有帮助.

这里要记住的重要一点是,propTypes会检查您是否将正确的数据传递给渲染此组件的位置中的当前元素.您可以根据需要重复使用该组件,因此很容易发生忘记将适当的属性传递给它的情况.

因此,检查从"其他源"传递的数据比在编写组件本身时检查刚刚使用的数据更重要,更有益.如果您可以使用其他地方的信息来处理,那么您将无法使用.

无论如何,它只是一个简单开发的实用工具,必须在生产环境中关闭.

结论:也许这个问题有点基于意见.我相信,如果你在构造函数(ES2015)或getInitialState中声明你的状态,并且在完全相同的信息下只有几行,那么使用stateTypes将没有多大帮助,只有stateTypes的形式.

  • 当你设置一个错误类型'shape'的状态时,警告它仍然会很好. (7认同)