【发布时间】:2020-09-06 07:30:46
【问题描述】:
我已经使用传统的 react-redux 设置配置了 redux-persist,如下所示:
onst persistConfig = {
key: 'root',
storage,
whitelist: ['todos'],
};
const persistedReducer = persistReducer(persistConfig, reducer);
const store = createStore(
persistedReducer,
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
);
const persistor = persistStore(store);
// wrapper
const StateProvider = ({ children }) => {
return (
<Provider store={store}>
<PersistGate loading={<div>Loading...</div>} persistor={persistor}>
{children}
</PersistGate>
</Provider>
);
};
但是,如何使用 redux-toolkit 进行配置? 到目前为止,我已经尝试过:
const persistedReducer = persistReducer(persistConfig, todoreducer);
const store = configureStore({
reducer: {
todos: persistedReducer,
},
});
const persistor = persistStore(store);
// wrapper
const StateProvider = ({ children }) => {
return (
<Provider store={store}>
<PersistGate loading={<div>Loading...</div>} persistor={persistor}>
{children}
</PersistGate>
</Provider>
);
};
但是,它不起作用。我无法通过const todos = useSelector(state => state.todos); 获得todos
它返回未定义。
【问题讨论】:
-
这看起来是正确的。你能提供一个codeandbox吗?
标签: javascript reactjs redux react-redux redux-persist