我有两个Flux Containers(CustomerList),它们基本上是可过滤的,客户实体的分页列表。它们在同一页面中呈现,但过滤器是独立的。每当我更改过滤器或推进页面时,我都需要通过Action Creators向服务器发出请求,然后激活Dispatcher并更新CustomerStore,它会触发事件并更新容器。
如果存储器应该是Flux中的单例(如果calculateState
是静态方法),如何保留同一组件的两个实例,而其中一个实例不会覆盖另一个的内容?
答案 0 :(得分:1)
根据您的描述,我理解:
<CustomerList>
组件实例,每个实例从CustomerStore获取数据在这样的设置中,您可以:
<CustomerList>
的每个实例 - 保存组件<CustomerList>
状态下的所有过滤器设置。 getStateFromStores()
调用),从状态应用过滤器,以仅呈现过滤后的结果然后您的(单件)CustomerStore将包含来自两个实例的Ajax调用的服务器响应的并集,每个实例获取所有客户记录,但每个实例仅显示应用的自己的过滤器。 在一个例子中:
<CustomerList>
实例1和实例2都显示第1页<CustomerList>
实例1触发第2页&#39;动作<CustomerList>
1获取整个商店内容,仅显示第2页<CustomerList>
2获取整个商店内容,仅显示第1页<CustomerList>
2设置过滤到“仅限新客户”&#39;和火灾行动<CustomerList>
1获取整个商店内容,仅显示第2页(与之前的呈现无关)<CustomerList>
2获取整个商店内容,仅显示新客户(因为过滤器包含超出第2页的新客户)