当在组件层次结构中彼此距离很远的两个元素之间传递数据时,通过道具传递数据可能非常乏味。在这些用例中,我使用Redux仅仅是因为它跟踪大量组件时的情况。使用闭包来封装React组件的状态
我在一个小项目中所做的就是使用闭包来封装状态并导出该变量并在其他地方使用它。我觉得这是一个反模式,但它确实有效。
它的工作方式是声明一些将在组件内被修改的变量。这个变量是从其他地方导入并从其他地方消耗的。
这里是一个小样本与我在做什么(假装有一个大的组件层次结构):https://codesandbox.io/s/2R9RvYkN1
所以我的问题是:有没有更好的方法来达到同样的效果?我们是否应该为这些用例使用Flux实现?只是通过大量层次的组件传递道具是否可行?
您应该在SO帖子中分享代码模式并附上一个具体示例。 – vijayst
如果您使用Redux,则不需要设置选定的颜色。 'ColorSelector'会派发一个动作来更新状态,所选的颜色会自动更新而不需要用户点击一个按钮。 – adrice727