目前我正在创建动作,然后是一个减速器来处理我的应用程序的不同部分......不同的域。
我的应用程序列出了class和学生。
目前我有一个应用程序已加载的操作,以便我知道何时删除加载微调器,我有针对class和学生的操作。我的问题是我发现我需要连续执行多个操作,但不确定这是否是使用 redux 的有效方法。
这是一个示例函数,它在数据加载后分派多个操作:
/**
* Callback used by readAppData.
*
* @param object ioResult An object: {success: boolean, errorObj?: object, data?: string}
*/
dataLoaded(ioResult: Object) {
if (ioResult.success === true) {
this.props.dispatch(appActions.appHasLoaded());
if (ioResult.data !== '') {
const jsonData = JSON.parse(ioResult.data);
this.props.dispatch(classActions.replaceClasses(jsonData.classes));
this.props.dispatch(pupilActions.replacePupils(jsonData.pupils));
}
} else if (ioResult.errorObj.code === 'ENOENT') { // File doesn't exist.
writeAppData('', this.dataSaved);
} else { // Some other error.
this.props.dispatch(appActions.appHasErrored());
}
}
我正在考虑将 jsonData.classes 和 jsonData.pupils 放入 appActions.appHasLoaded() 调用中,并且在我的class和学生减速器中有一个新的 APP_HAS_LOADED 案例。
这是更好的方法吗?把它减少到一个动作?有单独的动作可以很容易地看到正在发生的事情......也许在 6 个月后,我将不得不查看我的代码,如果我在其他减速器中使用 APP_HAS_LOADED ,我将不得不查看它到底发生了什么。此外,在应用程序启动时加载的数据将扩展到不仅仅是class和学生,所以如果我不合并调用,很快就会有更多的调度要做——也许我可以将数据存储在单独的文件中并加载每个文件一次一个,这也可以解决我不得不连续调用多个操作的问题。
多次调用 dispatch 可以吗?