什么时候执行React PropTypes检查?

时间:2018-10-16 09:32:24

标签: reactjs react-proptypes

在组件中定义了PropType时,可以期望它们会在收到道具时检查道具的类型。但是很明显,组件可以在用期望值填充之前获得一个prop值,因此,会出现PropType警告。那么在组件生命周期的什么时候运行类型检查?

1 个答案:

答案 0 :(得分:0)

这是捆绑验证的工厂:

https://github.com/facebook/react/blob/master/packages/react/src/ReactElementValidator.js

在开发模式下,在这里使用它:

https://github.com/facebook/react/blob/8af6728c6f105d37f9c0006288a6d1ac3903dc71/packages/react/src/React.js#L61-L63

因此,当传递道具时,它似乎处于创建/克隆阶段,例如,create元素工厂的底部将其称为:https://github.com/facebook/react/blob/master/packages/react/src/ReactElementValidator.js#L262-L333

如果将有效道具后期更改为无效道具,则它必须克隆或重新创建元素(如果它发出警告),但是我没有时间确认这一点,则可以轻松创建一个基本类与记录器一起对生命周期方法进行验证。

您可以在react repo根目录中搜索checkPropTypes,并在内部找到所有用途。