Я сейчас использую reselect
, redux
и sagas
. Это моя ситуация. У меня есть 3-4 вызова API для получения данных в моем приложении. Каждому из этих данных API необходимы определенные c значения из 1 основной выборки API, которая является первым вызовом API. То, что я сейчас делаю, находится в моих сагах, я использую 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());
}
}
Итак, мой вопрос был, является ли это подходом хорошей практики или я должен включить требуемое состояние в свои отправки компонентов?
Заранее спасибо!