Fab*_*ice 4 store persist local-storage reactjs redux
我想将一些用户数据保存到 localStorage 并且需要商店订阅状态更改,但我不想在每次状态更改时触发,而是仅在特定事件发生时触发,例如在我的情况下是 user_update 事件。
我可以通过任何方式让商店订阅特定事件而不是通用事件:
store.subscribe(()=>{
//save to local storage here
})
Run Code Online (Sandbox Code Playgroud)
好吧,非常感谢您的帮助:)
当您订阅 store 时,每次 store 中的某些内容发生变化时,您的内部函数都会触发。这就是它的设计方式。所以,你不能响应事件,但你可以响应商店特定部分的变化。
function observeStore(store, select, onChange) {
let currentState;
function handleChange() {
let nextState = select(store.getState());
if (nextState !== currentState) {
currentState = nextState;
onChange(currentState);
}
}
let unsubscribe = store.subscribe(handleChange);
handleChange();
return unsubscribe;
}
Run Code Online (Sandbox Code Playgroud)
然后做observeStore(store, select, this.writeToLocalStorageOrWhatever)。顺便说一下,为了在本地存储中持久存储数据,请尝试使用redux-persist。
查看更多信息:Redux store API Discussion
| 归档时间: |
|
| 查看次数: |
4089 次 |
| 最近记录: |