Я не знаком с этой неизменной 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
метод, но значение не обновляется. Любая помощь очень ценится. Спасибо.