【发布时间】:2016-10-18 10:42:48
【问题描述】:
假设我有两个反应组件。
组件 A 是网站所有者可以添加到其网站的电子商务商店。这包含商店的产品,网站的访问者可以选择要添加到购物车的商品。
组件 B 是一个购物车组件,网站所有者可以选择将其添加到他们网站的标题中。
我想解决的一个基本用例如下:
- 用户访问网站并将商品添加到购物车
- 组件 A 执行更新共享购物车商店的操作
- 此购物车商店提醒组件 B 进行更改
- 组件 B 通过从购物车商店获取新的购物车信息来更新其状态
- 新计数反映在标题中
在网站上,像 A 和 B 这样的组件被称为“插件”。当主站点呈现其页面时,它会遍历要在页面上呈现的插件列表。这些插件中的每一个都是相互独立的。
我的问题是,有没有办法让这些插件中的两个被传递到同一个商店,或者订阅同一个商店,而无需与主父组件交互?
如果这不可行,我的下一个解决方案是将组件 A 和 B 容纳在容器组件 X 中。X 将是一个持有状态和业务逻辑的提供者。 A 和 B 将仅包含视图逻辑。 X 将作为插件呈现,但在页面上不可见,并管理 A 和 B 的状态。
如果我采用这种容器方法,有没有办法从容器中提取 A 和 B,以便在它们链接到同一个商店后独立渲染它们?
【问题讨论】:
-
你走了多远?这听起来像是一个全球商店会解决的问题。像 redux 之类的东西,也许是:redux.js.org.
-
开发非常深入。该基础父组件非常固定。现在我正在为需要独立存在的网站本身创建一堆这些插件。我正在使用fluxible而不是redux。问题是主站点是一个全局环境,而这些插件是添加到页面的独立环境。
标签: reactjs flux reactjs-flux fluxible react-dom