【发布时间】:2018-09-23 12:00:26
【问题描述】:
我有一个包含项目概念的网络应用程序。我使用react、react-redux 和react-persist 和localForage 作为持久目标。
我现在正在尝试实现项目保存和项目加载功能,整个Redux State作为一个项目文件。项目文件应作为用户下载保存到磁盘。和/或任何云文件存储服务。
保存部分很简单,只需将存储,序列化为 JSON 并扑通扑通给用户下载。
加载有点棘手,我的ReactDOM.render 相当正常。
const {store, persistor} = configureStore()
ReactDOM.render(
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<Router>
<Route path={`${process.env.PATH}/`} component={App} />
</Router>
</PersistGate>
</Provider>,
document.getElementById('app')
)
configureStore() 查找是否已创建商店并返回,否则创建新商店。
对于加载过程,我在想这样的事情会做
- 从用户加载 JSON 并解析
- 清除 localForage(因为它会覆盖 initalState)
- 使用用户提交的文件中的 initialState 重新创建存储
- 再次调用 ReactDOM.render()
有没有更好的方法,也许是我在文档中错过的 redux 和 redux-persist 的内置加载方法?
【问题讨论】:
标签: reactjs redux react-redux redux-persist