Полоса хода с сокращением

У меня есть процесс загрузки фона в моем приложении response/redux, которое обновляется очень часто. Мой редуктор выглядит примерно так:

export default function progressReducer(state = initialState, action = {}) {
  switch (action.type) {
    case PROGRESS_TOTAL_INCREASE:
      return Object.assign({}, state, {total: state.total + action.amount});
    case PROGRESS_CURRENT_INCREASE:
      let current = state.current + action.amount, total = state.total;
      if (current >= state.total && false) {
        state.total = 0;
        current = 0;
      }
      return {total, current};
    default:
      return state;
  }
}

Это работает. Отлично. Но журнал redux devtool очень быстро заполняется действиями прогресса, заглушая любые другие действия. Правильно ли это, или я должен искать другой способ создания этих уведомлений?

Спасибо!

Ответ 1

Если вы используете расширение chrome redux devtools, вы можете просто указать действие, которое должно быть скрыто в настройках расширений.

настройки расширения decux devx

В противном случае, если вы включили его в свой проект, проверьте redux-devtools-filter-actions.

Ответ 2

Я начну с того, что буду использовать ваш здравый смысл, большую часть времени он примет правильное решение.

Вот что я предлагаю

  • Если несколько компонентов необходимо отслеживать ход загрузки, лучше всего использовать сокращение.

  • Если только конкретный компонент должен отслеживать ход загрузки, вы можете просто обновить состояние компонентов.

    Помните, если вы используете состояние компонентов, вы больше не можете использовать Pure-функциональные компоненты... поскольку они не имеют состояния

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