Как я могу корректно обновить свое состояние редукса? - PullRequest
1 голос
/ 22 января 2020

Я столкнулся с проблемой, я новичок в Redux, и я просто играю с этим, поэтому у меня проблема, я создал файл данных json, я получаю данные из него в своем редукторе и все работает нормально, вот мой редуктор:

import update from "immutability-helper";

import data from "../../../../data";

export default function notificationsReducer(state, action) {
  switch (action.type) {
    case "NOTIFICATIONS_EDIT_TO_FOLLOW":
      return update(state, {
        [action.id]: {
          follwing: { $set: false }
        }
      });
      break;
    case "NOTIFICATIONS_EDIT_TO_UNFOLLOW":
      return [];
      break;
    default:
      return data.notifications;
  }
}

Как видите, в части по умолчанию я возвращаю data.notifification, это, конечно, вызывает проблему, потому что данные в файле json не изменяется, состояние меняется.

Когда я работаю над своим компонентом и нажимаю «следовать» и «отписаться», и все выглядит нормально, но когда я щелкаю где-то еще за пределами компонента, другие действия отправляются, (другие для разных целей), и часть по умолчанию выполняется снова, поэтому, когда я снова открываю свои уведомления, все сделанные мной изменения пропадают.

Это моя проблема, если требуется какое-либо объяснение от меня, просто спросите, и я сделаю Отредактируйте мой вопрос.

Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 22 января 2020

Повторение комментариев:

В вашем случае по умолчанию (для всех редукторов) вам необходимо вернуть текущее состояние вашего редуктора, чтобы не связанные действия не влияли на их значения:

default:
  return state;

Вам также (при необходимости) необходимо установить начальное значение вашего редуктора, в этом случае уведомления из файла данных JSON:

export default function notificationsReducer(state = data, action) {...}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...