是否可以在 redux 的 reducer 中访问 localstorage?

Is it possible to access localstorage in redux' reducer?

在reducer中,我需要从localStorage中读取数据来决定record的条数,从而决定默认选中的item的名称。是否可以在 redux reducer 中使用 localStorage?

代码,

const ugData = JSON.parse(localStorage.getItem("ugData"));
const defaultState = {
     ...
     // if in the localstorage, 
     // use allgroups length to decide 
     // the selected item's name
     selectedGroupName: ugData.allGroups.length > 0 ? ugData.allGroups[0].name:"" ,
}

目前,我遇到这样的错误,

ReferenceError: localStorage is not defined

欢迎提出想法。

你的问题好像和redux无关。 localStorage 在任何上下文中都应该始终存在于浏览器中。 因此不需要将它传递到某个地方。

你说的happens when at compiling stage会很有趣,因为JS没有编译阶段。

顺便说一句,你应该只在顶层减速器上做这些事情,当初始化它时,以保持你的整体减速器没有副作用。

我建议不要从 reducer 中的本地存储中读取信息,而是在 redux 存储中获取信息,从那里读取并在本地存储发生变化时更新它。并且仅在加载页面时从本地存储初始化 redux 状态。