我正在使用带有Alt flux实现的React开发应用程序。 目前,我正试图找出使用来自多个Alt商店的数据来组合后端请求的最佳方法。
说,我的SheetDataStore
文件中有FiltersStore
,fetchFilteredData
和DataSource
方法。要从后端获取正确的数据,我需要向fetchFilteredData
传递一些工作表数据和过滤器,但是当您从其中一个商店调用fetchFilteredData
方法时,您可以传递一些参数和状态只是那个确切的商店。
所以我看到了处理这种情况的两种方法:
1)我做了两个动作:prepareFilters
和fetchData
。 prepareFilters
从组件调用并由FilterStore
处理,后者准备所有必需的数据,然后调用fetchData
操作,将准备好的数据作为参数传递。 SheetDataStore
处理fetchData
操作,并立即调用fetchFilteredData
包含所有必需数据。
我不喜欢的是,在我看来,商店不应该采取行动,因此这是一种愚蠢的解决方案。
2)我将FilterStore
导入SheetDataStore
并在FilterStore.getState()
方法之一中使用SheetDataStore
来获取我需要的所有数据。这似乎很容易,但可能会有一些陷阱,如此连接商店。
这种情况有没有最佳做法?也许你们中的一些人遇到过类似的问题,可以根据你的经验推荐哪条路径?
答案 0 :(得分:1)
在组件中进行绑定。假设您有FilterComponent
然后将搜索操作SheetDataAction.search
传递给它:
<FilterComponent search={SheetDataAction.search} />
在FilterComponent.render()
中执行类似<button onClick={() => this.props.search(this.props.criteria)} />