在 redux-starter-kit 的 createSlice 中改变状态

Dmi*_*vol 1 javascript reactjs redux

我使用createSlice()redux-starter-kit. 由于immer在引擎盖下,可以在减速器中改变状态。但是他们说在immer. 例如,您不应该同时改变并从减速器返回新状态。所以我选择像第一次尝试一样变异

const testSlice = createSlice({
    initialState: 4,
    reducers:{
        increment: state => {state = state + 1},
        decrement: state => {state = state - 1}
    }});
Run Code Online (Sandbox Code Playgroud)

但是这段代码不起作用。特别是,当我调度 increment() 或 decrement() 时,我在 Redux Dev Tools 中看到操作,但状态保持不变。好的。让我们像这样返回新状态:
第二次尝试

const testSlice = createSlice({
    initialState: 4,
    reducers:{
        increment: state => state + 1,
        decrement: state => state - 1
    }});
Run Code Online (Sandbox Code Playgroud)

这段代码按预期工作。毕竟,我已经尝试过这种构造的
第三次尝试

const testSlice = createSlice({
    initialState: {counter:4},
    reducers:{
        increment: state => {state.counter = state.counter + 1},
        decrement: state => {state.counter = state.counter - 1}
    }});
Run Code Online (Sandbox Code Playgroud)

这也有效问题是 - 为什么第三个有效而同时第一个无效?