【问题标题】:SPA when route change reset store value to default路由更改时的 SPA 将存储值重置为默认值
【发布时间】:2017-02-23 06:50:07
【问题描述】:

例如有两个组件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 是一个大对象,我必须重写大量代码才能重置。

如果你有什么好的想法,请告诉我如何解决。\

谢谢

【问题讨论】:

    标签: javascript reactjs flux


    【解决方案1】:

    您使用什么代码进行重置?应该很简单。

    // 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();
    }
    

    【讨论】:

      猜你喜欢
      • 2020-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-04
      • 1970-01-01
      • 2013-05-30
      相关资源
      最近更新 更多