如何使用 Ngrx 保存到本地存储?
How to save to local storage using Ngrx?
我正在尝试将一个简单的菜单状态保存到浏览器 localStorage,无论它是 'open' 还是 'close'。我知道我可以使用 localStorage.setItem
来完成。但是,我的项目正在使用 NGRX。使用 NGRX 有更好的方法来处理这个问题吗?默认情况下,菜单是打开的。如果我关闭它并关闭浏览器然后 return 回来,它应该被关闭。
有没有办法使用 NGRX 或 localStorage 是更好的解决方案?我正在学习 NGRX。感谢任何帮助。
不确定什么是最好的。
但对我来说 NGRX 有点大,它可能需要这么多 setting/initializing 代码。
当我在做简单的任务或功能时我不使用 NGRX,我认为很多任务和需求可以通过 localStorage、Service、Observable 来处理。
不过想学NGRX也没关系
您可以创建一个您在初始状态下设置的函数,该函数可以从本地存储中提取数据
StoreModule.forRoot(
{ someReducer: reducer },
{ initialState: getInitialAppState }
),
然后在函数中你可以做这样的事情
export function getInitialAppState() {
const previousSettings = localStorage.getItem("settings")
if (previousSettings != null) {
return JSON.parse(previousSettings);
}
return {};
}
因此,如果您在之前的设置中的某一点存储了一些设置,它会将其设置为初始状态。要存储这些设置,您可以在 app.component 或某个更适合设置列表的地方有一个选择器,并且只是 JSON.stringify 您要存储的状态。
我正在尝试将一个简单的菜单状态保存到浏览器 localStorage,无论它是 'open' 还是 'close'。我知道我可以使用 localStorage.setItem
来完成。但是,我的项目正在使用 NGRX。使用 NGRX 有更好的方法来处理这个问题吗?默认情况下,菜单是打开的。如果我关闭它并关闭浏览器然后 return 回来,它应该被关闭。
有没有办法使用 NGRX 或 localStorage 是更好的解决方案?我正在学习 NGRX。感谢任何帮助。
不确定什么是最好的。 但对我来说 NGRX 有点大,它可能需要这么多 setting/initializing 代码。 当我在做简单的任务或功能时我不使用 NGRX,我认为很多任务和需求可以通过 localStorage、Service、Observable 来处理。 不过想学NGRX也没关系
您可以创建一个您在初始状态下设置的函数,该函数可以从本地存储中提取数据
StoreModule.forRoot(
{ someReducer: reducer },
{ initialState: getInitialAppState }
),
然后在函数中你可以做这样的事情
export function getInitialAppState() {
const previousSettings = localStorage.getItem("settings")
if (previousSettings != null) {
return JSON.parse(previousSettings);
}
return {};
}
因此,如果您在之前的设置中的某一点存储了一些设置,它会将其设置为初始状态。要存储这些设置,您可以在 app.component 或某个更适合设置列表的地方有一个选择器,并且只是 JSON.stringify 您要存储的状态。