我需要将当前状态重置为初始状态。但 我所有的尝试都没有成功。如何使用redux-toolkit做到这一点?
const showOnReviewSlice = createSlice({
name: 'showOnReview',
initialState: {
returned: []
},
reducers: {
reset(state) {
//here I need to reset state of current slice
}
}
});
答案 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)
}
}
});