我在Reactiflux上发布了这个,但在这里可能会有更多的牵引力。我创建了一个沙箱来证明我的需求:https://codesandbox.io/s/xvnk0znw7z
我要做的是创建一个通用的模态包装器,我可以用来封装几个组件;在沙盒中,组件是日期范围选择器,但我也有一个formik
组件。
问题是,Apply和Clear按钮必须是包装模式的一部分,而不是它包装的子组件。
但是,当单击“应用”或“清除”时,将子组件状态保存到上下文(为简洁起见不包括)实际上是子组件本身的责任;只有它知道应该怎么做。
在上面的示例中,这将是ok
的{{1}}和clear
方法。直觉上,我会从包装模式中调用DatesPicker
和children.ok
,但我知道这不是应该如何完成的事实。
我在React的文档中看了很多Cat and Mouse渲染道具示例,但我无法理解如何在此处应用它。