我当前正在使用reselect
,redux
和sagas
。这是我的情况。我有3-4个api调用来获取应用程序中的数据。这些api数据中的每一个都需要从1个主要api提取中获得特定值,这是第一个api调用。目前,我正在执行的操作是在sagas中,我使用yield select(selectData)
始终获取状态中的最新可用数据。但是,我最后几次打电话给他们。这是个好方法还是我做错了呢?这是我的一位传奇人物的例子:
function* fetchCategories() {
const company = yield select(selectOrganizationCompanyId); // Fetched from another api
const currentBoardId = yield select(selectCurrentBoardId); // Fetched from another api
const categories = yield select(selectBoardCategories); // Check if categories is already in state
if (shouldFetch(categories)) {
try {
const result = yield axios.get(
`https://company.com/api/v1/public/${company}/ideaboards/${currentBoardId}/categories`
);
yield put(fetchCategoriesSuccess(result.data.rows));
} catch (error) {
yield put(fetchCategoriesFailure(error.message));
}
} else {
yield put(fetchCategoriesState());
}
}
所以我的问题是,这是否是一种好的实践方法,还是应该在组件分派中包括所需的状态?
谢谢!