Ошибка неверного пути к ключу при попытке обновить редуктор - PullRequest
0 голосов
/ 12 февраля 2020

Я не знаком с этой неизменной js концепцией. В моем приложении структура редуктора неизменна. Мне нужно обновить состояние в редукторе с новыми значениями. Но когда я попробовал с state.setIn методом, я получил эту недопустимую проблему keyPath. Но тот же код работает и на других экранах. Я не знаю, почему эта проблема появляется только на определенных экранах. Если кто-нибудь знает эту неизменную концепцию, пожалуйста, помогите. Ниже приведен мой код в редукторе

редуктор

 const initialFieldState = {
      value: "",
      validated: true,
      validating: false,
      errors: []
    };
const initialSelectState = {
  value: "",
  validated: false,
  validating: false,
  errors: []
};

....
.....

const initialState = fromJS({
  fields: {
    history: { ...initialSelectState },
    comment: { ...initialFieldState },
         sale_id: { ...initialFieldIdState },
    master_id: { ...initialFieldIdState }
  },
  progressvalue: 1,
  submitting: false,
  submitted: false,
  valid: true,
  statusText: "",
  isLoading: false,
  online: true
});

....
....
function TermiteHistory(state = initialState, action) {
  switch (action.type) {
   case UPDATE_FIELDS:

   return state
  .setIn(
    ["fields", "history", "value"],
    action.dict.history ? action.dict.history : ""
  )
  .setIn(["fields", "history", "validated"], true)
  .setIn(
    ["fields", "comment", "value"],
    action.dict.comment ? action.dict.comment : ""
  )
  .setIn(["fields", "comment", "validated"], true)

}
}

Я пытаюсь обновить только определенные значения исходного состояния. Что не так я делаю. Как мне обновить значения в редукторе? Я пробовал state.set метод, но значение не обновляется. Любая помощь очень ценится. Спасибо.

...