如何使用带有 redux-persist 的 React 工具包清除任何持久状态

Chr*_*vid 4 reactjs redux-persist redux-toolkit

在官方文档中,它说添加一个额外的减速器以清除当前切片的状态,但是到处都没有明确的示例

import { PURGE } from "redux-persist";

extraReducers: (builder) => {
  builder.addCase(PURGE, (state) => {
    customEntityAdapter.removeAll(state);
  });
}
Run Code Online (Sandbox Code Playgroud)

如何导入或从哪里获取customEntityAdapter,当我调用persistorObjectthen purge 时,它​​显示错误,任何人都可以给我一些说明,谢谢我很欣赏 redux-toolkit 和https://redux-toolkit.js.org的清晰示例/usage/usage-guide#use-with-redux-persist

小智 7

正如 Radu Lunasu 所说,这是正确的代码:

extraReducers: (builder) => {
  builder.addCase(PURGE, () => {
    return initialState;
  });
},
Run Code Online (Sandbox Code Playgroud)

然后你可以在任何组件中使用 persistor.purge() ,例如:

const handleLogout = () => {
    persistor.purge();
    navigate("/login");
};
Run Code Online (Sandbox Code Playgroud)

我没有声誉来支持你的答案。抱歉,但是+1