Постоянное состояние Mutate Redux при разработке

Я использую redux-persist, чтобы сохранить мою стадию redux в AsyncStorage в собственном реагировании. Поскольку это новое приложение, я продолжаю изменять структуру своего начального состояния redux, чтобы приспособить новые функции или исправления. Но когда я перезагружаю приложение, оно переопределяется старым состоянием, которое сохранялось с помощью redux-persist (регидратации).

Как мне получить redux-persist для сохранения нового initialState без необходимости писать миграции в моей среде разработки?


person Mwirabua Tim    schedule 10.03.2019    source источник


Ответы (2)


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

import { persistor } from '../../AppContainer' // adjust this line for you
import RNRestart from 'react-native-restart'

clearPersistedState = () => {
    persistor.purge()
    RNRestart.Restart() // reload the React Native Bundle
}

Необходимо немедленно перезагрузить приложение, потому что если какое-либо действие redux будет вызвано после очистки сохраненного состояния, redux-persist снова сохранит старое initialState (которое все еще находится в ОЗУ).

person Mwirabua Tim    schedule 11.03.2019

Если вы пытаетесь внедрить новые функции и не удалять то, что требуется вашим представлениям, тогда установите automergelevel на 2, поскольку он будет переопределять только существующие ключи, и все новое, что вы добавляете, будет просто добавлено с указанным вами initialState.

person RageX    schedule 18.07.2019