У меня есть следующий пример, чтобы проиллюстрировать, как я обновляю состояние избыточности при загрузке данных из базы данных в приложении реагировать на избыточность. learningActionDataOperationBegin
устанавливает loading
(в редукторе) на true
, затем, как только данные извлекаются из базы данных, fetchLearningActionsSuccess
устанавливает loading
обратно на false
. Внутри компонента, где отображаются записи базы данных, FetchLearningActions
вызывается только тогда, когда изначально loading
имеет значение false. Я полагаю, что это обычная практика с приложениями реагировать на избыточность.
Однако, например, если браузер закрыт или интернет отключается во время загрузки данных, loading
остается как true
, что является проблемой, поскольку при следующем посещении страницы FetchLearningActions
не будет вызвано (поскольку loading
по-прежнему имеет значение true), и на странице всегда будет отображаться текст Loading..
на экране. Интересно, как мне с этим справиться. Есть идеи или предложения?
export function FetchLearningActions(submissionId) {
var url = 'api/LearningAction/FetchLearningActions';
return dispatch => {
dispatch(learningActionDataOperationBegin());
axios.get(url, { params: { submissionId } })
.then(response => {
console.log('Learning actions are loaded.');
const learningActions = new schema.Entity('learningActions');
const normalizedData = normalize(response.data, [learningActions]);
dispatch(fetchLearningActionsSuccess(normalizedData.entities.learningActions))
})
.catch(error => { learningActionDataOperationFailure(error) });
}
}