SPA 在路由更改时将存储值重置为默认值

SPA when route change reset store value to default

例如,有两个组件 AB 处于不同的状态,名为 /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();
}