Как бороться с ситуациями, когда загрузка прерывается в приложениях реагировать на избыточность - PullRequest
1 голос
/ 04 ноября 2019

У меня есть следующий пример, чтобы проиллюстрировать, как я обновляю состояние избыточности при загрузке данных из базы данных в приложении реагировать на избыточность. 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) });
    }
}

1 Ответ

0 голосов
/ 04 ноября 2019

Вам нужно обернуть learningActionDataOperationFailure(error) с отправкой. Это действие должно установить для isLoading значение false и, возможно, установить флаг ошибки. Теперь вы можете различать состояния, в которых ваше приложение делает запрос, и успешно ли оно выполнено или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...