【问题标题】:React PropTypes isRequired warning with cloneElement使用 cloneElement 反应 PropTypes isRequired 警告
【发布时间】:2019-07-01 08:46:59
【问题描述】:

React-Numpad 是一个遵循 HoC 的库。有 NumPad 和 StaticWrapper 组件(文件夹:lib/components)呈现以下类型的子项:KeyPad、Calendar 和 Appointment(文件夹:lib/elements)。

在运行测试时,我收到一些关于在 NumPad 和 StaticWrapper 中初始化的未定义所需道具的警告。

道具:确认、更新;在子组件中标记为必需。

父组件:

https://github.com/gpietro/react-numpad/blob/v5.0.0-beta.14/lib/components/StaticWrapper.js#L30

子组件:

https://github.com/gpietro/react-numpad/blob/v5.0.0-beta.14/lib/elements/KeyPad.js#L172

发出警告的测试

https://github.com/gpietro/react-numpad/blob/v5.0.0-beta.14/lib/tests/useKeyboardTest.js#L10

我错过了什么吗?

谢谢

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    仅供参考,我在反应存储库issue 上找到了答案。

    丹·阿布拉莫夫

    是的,这是意料之中的,因为在创建时会检查元素 时间。所以当你写的时候,它变成了一个 React.createElement() 调用,props 被验证。

    当您依赖 cloneElement() 指定所需的道具时,我们的 建议在您的组件中使用 defaultProps 后备,例如

    MyComponent.defaultProps = { onSubmit: () => {} }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-16
      • 2021-09-10
      • 2017-06-23
      相关资源
      最近更新 更多