【发布时间】:2021-08-05 14:20:12
【问题描述】:
我是 redux 的新手。在我的应用程序中,我正在使用一些带有 redux thunk 的异步操作。 例如,我有这个从 API 加载电影的操作:
export const loadMovies = (url) => async (dispatch) => {
const response = await fetch(url);
const result = await response.json();
const { total_pages: totalPages, results: movies } = result;
dispatch(moviesLoaded(totalPages, movies));
};
如果没有电影要加载怎么办(在数据库中搜索没有给我结果),所以我想将状态(它是另一个 redux 存储切片)更新为“没有电影”。并根据该状态呈现不同的组件。
所以我的新动作是这样的:
export const loadMovies = (url) => async (dispatch) => {
const response = await fetch(url);
const result = await response.json();
if (result) {
const { total_pages: totalPages, results: movies } = result;
dispatch(moviesLoaded(totalPages, movies));
} else {
dispatch(updateStatus('no-movies')) // updateStatus is imported from another redux store slice
}
};
我想知道这样做是否可以。或者,将操作从一个存储切片导入另一个存储切片是一种不好的做法。还有什么是处理这种情况的更好方法。
【问题讨论】:
标签: javascript reactjs redux redux-thunk