У меня есть веб-приложение, которое имеет представление о проектах.Я использую react
, react-redux
и react-persist
с localForage
в качестве постоянной цели.
Сейчас я пытаюсь реализовать функциональность сохранения проекта и загрузки проекта , и все состояние Redux служит файлом проекта.Файл проекта должен быть сохранен на диск для загрузки пользователем.И / или любая облачная служба хранения файлов.
Сохранение - это тривиальная задача: просто возьмите хранилище, сериализовайте в 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)
- Recreatestore, с initialState из предоставленного пользователем файла
- Вызовите ReactDOM.render () снова
Есть ли лучший способ, возможно, встроенные методы загрузки в redux
и redux-persist
что я пропустил в документах?