Я изучаю Redux.Я новичок, поэтому я не хочу развивать плохую привычку с самого начала, поэтому я пишу это.
Документ, который я читаю, говорит, что в редукторах нам нужно всегда устанавливать состояние, в котором мыизмените его - другими словами, сделайте следующее:
const someReducer = (state=initState, {type, payload}) => {
switch(type) {
case 'CHANGE_VALUE_ONE' : {
state = {...state, valueOne: payload }
break
}
case 'CHANGE_VALUE_TWO' : {
state = {...state, valueTwo: payload }
break
}
default:
state = state
}
return state
}
Мой подход заключался в создании константы newState, которая идентична полученному нами состоянию, внесите изменение в фиктивную переменную и верните ее - или в коде:
const userReducer = (state= {name: null, age: null}, {type, payload}) => {
const newState = {...state}
switch(type) {
case 'CHANGE_VALUE_ONE' : {
newState.valueOne= payload
break
}
case 'CHANGE_VALUE_TWO' : {
newState.valueTwo= payload
break
}
}
return newState
}
Я думаю, что то, как я это делаю, чище - если у меня сложное состояние, я могу легко изменить то, что мне нужно изменить, не изменяя исходного состояния.