Как правильно удалить ошибку из магазина приставок - PullRequest
0 голосов
/ 24 июня 2019

У меня есть приложениеact-redux, и я отлавливаю каждый ответ об ошибке от redux-saga, сохраняю его в redux-store и отображаю в компоненте. Основная проблема заключается в возможности удалить его при обновлении компонента или при переходе пользователя на другую страницу. Я пытался использовать методы жизненного цикла компонента (componentWillUpdate), но он не работал должным образом, потому что у меня были другие части хранилища, подключенные к компоненту, и когда они обновляются, он очищает ошибку до того, как ее увидит пользователь.

У меня вопрос: есть ли правильный способ хранить / просматривать / удалять ошибки, используя приставку?

Я обрабатываю ошибки таким образом

export function* errorHandler(err: any): SagaIterator {
   // put an error in the redux-store
}

// it's a wrapper for every saga
export const genericErrorHandler = (saga: (...args: any[]) => SagaIterator, ...args: any[]) =>
    function* handleApp(action: any): any {
        try {
            yield call(saga, action, args);
        } catch (err) {
            yield call(errorHandler, err);
        }
    };

1 Ответ

0 голосов
/ 24 июня 2019

Я мог бы дать более конкретное предложение, если бы у нас было больше деталей о дизайне вашего приложения и о том, как вы обрабатываете ошибки.Но вот некоторые вещи, которые могут помочь:

  • разбить ошибки по типам, с отдельными действиями / редукторами / местами хранения для каждого.Это поможет вам определиться с тем, какая ошибка произошла и когда / как показывать каждую из них.
  • запускает действие, чтобы очистить состояние ошибки.Это гарантирует, что вы будете точно знать, каких ошибок больше нет, и когда произойдет это изменение.Если возможно, не делайте это как побочный эффект чего-то еще, будьте уверены, когда и почему.
  • , если состояние ошибки относится к компоненту пользовательского интерфейса и должно быть удалено из хранилища, когда этоКомпонент уходит, рассмотрите возможность запуска действия по очистке ошибок в методе componentWillUnmount этого компонента.Вызывается только при удалении компонента из DOM.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...