У меня есть приложение, использующее Redux. Is хранит глобальное состояние, как показано ниже:
Создать магазин:
import {createStore, applyMiddleware} from 'redux';
import rootReducer from '../reducers';
import thunk from 'redux-thunk';
const configureStore = initialState => {
return createStore(
rootReducer,
initialState,
applyMiddleware(thunk)
);
};
export default configureStore;
Обрабатывает локальное хранилище
const storageName = 'xxxState';
export const loadState = () => {
try {
const serializedState = localStorage.getItem(storageName);
if (serializedState === null) {
return undefined;
}
return JSON.parse(serializedState);
} catch(err) {
return undefined;
}
};
export const saveState = state => {
try {
const serializedState = JSON.stringify(state);
localStorage.setItem(storageName, serializedState);
} catch(err) {
throw err;
}
};
Наконец запускает сеанс приложения:
import React from 'react';
import ReactDOM from 'react-dom';
import Start from './start';
import { Provider } from 'react-redux';
import configureStore from './store/configureStore';
import { loadState, saveState } from './store/localStorage';
import throttle from 'lodash/throttle';
const persistedState = loadState();
const store = configureStore(persistedState);
store.subscribe(throttle(() => {
saveState(store.getState());
}, 1000));
ReactDOM.render(
<Provider store={store}>
<Start />
</Provider>,
document.getElementById('root'));
Работает отлично. Итак, мой вопрос: есть ли возможность сделать то же самое с новым API контекста React?
Мне довольно удобно использовать новый контекст, я просто хочу знать о магазине, локальном хранилище, подписке. Таким образом, состояние сохраняется, даже когда пользователь покидает приложение.