Как использовать preloadedState в Redux Toolkit

Я хочу сохранить изменения в состоянии, даже если страница перезагружается. Я проверил свой oldState const в console.log, и он работает. Но мой пользовательский интерфейс не показывает состояние из локального хранилища. Как я могу использовать константу oldState в preloadedState?

      const saveState = state => {
  try {
    const serialisedState = JSON.stringify(state)
    window.localStorage.setItem('appState', serialisedState)
  } catch (err) {
    // error message
  }
}

const loadState = () => {
  try {
    const serialisedState = window.localStorage.getItem('appState')
    console.log(serialisedState)
    if (!serialisedState) return undefined
  } catch (err) {
    // error message
    return undefined
  }
}

const oldState = loadState()

export const store = configureStore({
  reducer: {
    products,
    filters,
    product,
    cart,
  },
  preloadedState: oldState,
})

store.subscribe(() => {
  saveState(store.getState())
})

1 ответ

В вашем после этой строки

      if (!serialisedState) return undefined

вы должны были вернуть значение

      return serialisedState

ОбновленоloadState:

      const loadState = () => {
  try {
    const serialisedState = window.localStorage.getItem('appState')
    console.log(serialisedState)
    if (!serialisedState) return undefined
    return serialisedState
  } catch (err) {
    // error message
    return undefined
  }
}

Надеюсь, это поможет.

Другие вопросы по тегам