我已经在 Reactiflux 上发布了这个,但在这里可能会得到更多的关注。我创建了一个沙箱来展示我的需求:https ://codesandbox.io/s/xvnk0znw7z
我要做的是创建一个通用的模态包装器,我可以用它来封装几个组件;在沙箱中,该组件是一个日期范围选择器,但我也有一个formik
组件,例如。
问题是,Apply 和 Clear 按钮需要是包装模式的一部分,而不是它包装的子组件。
但是,当点击 Apply 或 Clear 时,将子组件状态保存到 Context(为简洁起见,不包括在内)实际上是子组件本身的责任;只有它知道它应该怎么做。
在上面的示例中,这将是 的ok
和clear
方法DatesPicker
。直观地说,我会从包装模式中调用children.ok
and children.clear
,但我知道事实并非如此。
我看了很多 React 文档中的 Cat and Mouse 渲染道具示例,但我无法理解如何在这里应用它。