2016-08-04 3 views
3

Я использую реакцию и редукцию для своего SPA, и я хочу хранить некоторые данные локально. И мне нужно синхронизировать appState с localstorage, поэтому мои данные не будут потеряны после обновления страницы. Помоги мне, пожалуйста. Я совершенно новый для реагирования и сокращения и не очень понимаю, что происходит, но поскольку я думаю, что redux создает для меня это состояние всего приложения, поэтому я не могу просто привязать свое состояние к localstorage в компоненте приложения, будет просто состоянием компонента, а не моим приложением. (Некоторые хорошие учебные пособия, которые могут помочь мне понять жизненный цикл приложения, тоже будут оценены.)LocalStorage with react-redux

ответ

2

Я бы предложил хранить данные в локальном хранилище с помощью следующих команд.

Набор данных в LocalStorage можно сделать с помощью команды:

localStorage.setItem('nameForData', variableNameForData);

Для извлечения данных, когда это требуется.

var variableNameForData = localStorage.getItem('nameForData')

Чтобы удалить данные из LocalStorage:

localStorage.removeItem('nameForData')

Они, как правило, можно положить внутрь создателей действий с отправкой, чтобы изменить состояние некоторых булевы, который отслеживает взаимодействие приложений с LocalStorage ,

Например, у вас может быть состояние, для которого установлено локальное хранилище.

При обновлении вы можете вызвать создателя действия, который проверяет наличие локального хранилища, и если он установил, что логическое значение возвращается к истинному, или если оно не существует, вы вернетесь к созданию локального хранилища, а затем установите его в true.

Вы можете поместить эту функцию в componentWillMount(){}, и она будет вызываться, когда компонент сначала отображается, и, следовательно, в случае обновления.

Docs for component life cycle and specifically componentWillMount here

Docs for local storage here

+0

Спасибо за ответ. Я рад, что это возможно без дополнительных модулей, таких как redux-localstorage. –

1

Я могу предложить вам сохранить состояние после каждого действия. Для этого вы можете использовать локальное хранилище localStorage, которое хранит только весь объект состояния.

Затем в вашей части createStore вы получите initialState из localStorage API.

В этом случае вам не нужно изменять какие-либо компонент, Juste в InitialState от LocalStorage и промежуточного ПО, что сохранить состояние