SPA 在路由更改时将存储值重置为默认值
SPA when route change reset store value to default
例如,有两个组件 A 和 B 处于不同的状态,名为 /a和 /b
所有数据都在商店数据中设置。
例如:
a.store.js
a:{
data:1
}
setData(data){
this.a.data = data;
}
如果您更改 A
组件中的数据 a.store.js
数据也会更改。
handleClickA:function(){
AStore.setData(2) // change data of store to 2
}
当退出A组件并输入B并重新输入A时,数据为2 而不是 1;
我已经尝试在 unmont 生命周期中重置值 如果将 a.data
设置为 1;
它可以工作
但是如果 a
是一个大对象,我必须重写很多代码才能重置。
如果你有什么好的想法,请告诉我如何解决。\
谢谢
你用什么密码重置?应该很简单。
// A store
const initialState = {
// your large object
};
A = {
state: initialState,
reset: function() {
this.state = initialState;
},
setData: function(data) {
// your implementation
}
};
// Then you just
componentWillUnmount: function() {
A.reset();
}
例如,有两个组件 A 和 B 处于不同的状态,名为 /a和 /b
所有数据都在商店数据中设置。
例如:
a.store.js
a:{
data:1
}
setData(data){
this.a.data = data;
}
如果您更改 A
组件中的数据 a.store.js
数据也会更改。
handleClickA:function(){
AStore.setData(2) // change data of store to 2
}
当退出A组件并输入B并重新输入A时,数据为2 而不是 1;
我已经尝试在 unmont 生命周期中重置值 如果将 a.data
设置为 1;
但是如果 a
是一个大对象,我必须重写很多代码才能重置。
如果你有什么好的想法,请告诉我如何解决。\
谢谢
你用什么密码重置?应该很简单。
// A store
const initialState = {
// your large object
};
A = {
state: initialState,
reset: function() {
this.state = initialState;
},
setData: function(data) {
// your implementation
}
};
// Then you just
componentWillUnmount: function() {
A.reset();
}