React + Alt:使用来自多个商店的数据向DataSource

时间:2016-04-20 11:34:54

标签: reactjs flux reactjs-flux alt.js react-alt

我正在使用带有Alt flux实现的React开发应用程序。 目前,我正试图找出使用来自多个Alt商店的数据来组合后端请求的最佳方法。

说,我的SheetDataStore文件中有FiltersStorefetchFilteredDataDataSource方法。要从后端获取正确的数据,我需要向fetchFilteredData传递一些工作表数据和过滤器,但是当您从其中一个商店调用fetchFilteredData方法时,您可以传递一些参数和状态只是那个确切的商店。

所以我看到了处理这种情况的两种方法:

1)我做了两个动作:prepareFiltersfetchDataprepareFilters从组件调用并由FilterStore处理,后者准备所有必需的数据,然后调用fetchData操作,将准备好的数据作为参数传递。 SheetDataStore处理fetchData操作,并立即调用fetchFilteredData包含所有必需数据。

我不喜欢的是,在我看来,商店不应该采取行动,因此这是一种愚蠢的解决方案。

2)我将FilterStore导入SheetDataStore并在FilterStore.getState()方法之一中使用SheetDataStore来获取我需要的所有数据。这似乎很容易,但可能会有一些陷阱,如此连接商店。

这种情况有没有最佳做法?也许你们中的一些人遇到过类似的问题,可以根据你的经验推荐哪条路径?

1 个答案:

答案 0 :(得分:1)

在组件中进行绑定。假设您有FilterComponent然后将搜索操作SheetDataAction.search传递给它: <FilterComponent search={SheetDataAction.search} />

FilterComponent.render()中执行类似<button onClick={() => this.props.search(this.props.criteria)} />

的操作