使用cloneElement反应PropTypes isRequired警告

时间:2019-07-01 08:46:59

标签: javascript reactjs

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

我想念什么吗?

谢谢

1 个答案:

答案 0 :(得分:0)

仅供参考,我在一个反应​​库issue上找到了答案。

  

丹·阿布拉莫夫

     

是的,这是预期的,因为在创建时会检查元素   时间。所以当你写的时候,它变成了   调用React.createElement(),然后验证道具。

     

当您依靠cloneElement()指定所需的道具时,我们的   建议在您的组件中使用defaultProps以便明智   后备广告,例如

     

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