【问题标题】:When are the React PropTypes checks executed?React PropTypes 检查何时执行?
【发布时间】:2019-03-20 19:13:34
【问题描述】:

当在组件中定义 PropTypes 时,有一定的期望,当它们被接收时,它们会检查 props 的类型。但很明显,组件可以在填充预期值之前接收一个 prop 值,因此,PropType 警告会作为结果出现。那么在组件生命周期的哪个阶段运行类型检查?

【问题讨论】:

    标签: reactjs react-proptypes


    【解决方案1】:

    这是在验证中捆绑的工厂:

    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

    所以,它看起来像是在传递 props 时处于创建/克隆阶段,例如,创建元素工厂的底部调用它:https://github.com/facebook/react/blob/master/packages/react/src/ReactElementValidator.js#L262-L333

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

    你可以在 react repo root 中搜索checkPropTypes 并在内部找到所有使用。

    【讨论】:

    • 我找不到它是在每次渲染时重新验证还是仅在相应的道具发生变化时...你知道吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 2016-12-11
    • 2018-09-17
    • 2017-06-05
    相关资源
    最近更新 更多