问题

我想将我的状态树的一些部分保留到localStorage.这样做的适当地点是什么?减速器或动作?

  最佳答案

减速器从来不是这样做的适当场所,因为减速器应该是纯净的,没有副作用。

我建议只是在订阅者中这样做:

 store.subscribe(() => {
  // persist your state
})
 

在创建存储之前,读取这些持久的部分:

 const persistedState = // ...
const store = createStore(reducer, persistedState)
 

如果您使用combineReducers(),您将注意到尚未收到状态的还原器将使用其默认的state参数值“启动”为正常值.这可能非常方便.

最好是删除你的用户,这样你就不会太快写到本地存储,或者你会遇到性能问题。

最后,您可以创建一个封装该作为替代品的中间件,但我会从订阅者开始,因为它是一个更简单的解决方案,并且工作正常.

  相同标签的其他问题

javascriptreduxlocal-storagestate