使用redux-toolkit将状态重置为初始状态

时间:2019-12-20 11:25:08

标签: redux

我需要将当前状态重置为初始状态。但 我所有的尝试都没有成功。如何使用redux-toolkit做到这一点?

const showOnReviewSlice = createSlice({
    name: 'showOnReview',
    initialState: {
        returned: []
    },
    reducers: {
        reset(state) {
            //here I need to reset state of current slice
        }
    }
});

4 个答案:

答案 0 :(得分:3)

这对我有用(2020年中后期)。以您的代码上下文为例进行格式化。

const initialState = {
  returned: [],
}

const showOnReviewSlice = createSlice({
  name: "showOnReview",
  initialState,
  reducers: {
    reset: () => initialState,
  },
})

答案 1 :(得分:3)

在我的情况下,如上一个答案,2021 年年中,只需设置初始状态 DO NOT WORK, 即使您使用如下工具包适配器:

reducers: {
        // Other reducers
         state = tasksAdapter.getInitialState({
                status: 'idle',
                error: null,
                current: null
            })
        }
    },


相反,您应该使用 Object.assign(),猜测它与内部 immer 库行为有关

答案 2 :(得分:2)

类似这样的东西:

const intialState = {
  returned: []
}

const showOnReviewSlice = createSlice({
    name: 'showOnReview',
    initialState,
    reducers: {
        reset: state => initialState
    }
});

答案 3 :(得分:1)

直接用state代替initialState对我来说 not 无效(2020年中)。我最后的工作是使用Object.assign()复制每个属性。这可行:

const showOnReviewSlice = createSlice({
    name: 'showOnReview',
    initialState: {
        returned: []
    },
    reducers: {
        reset(state) {
            Object.assign(state, initialState)
        }
    }
});