是否可以在 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 状态。
在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 状态。