2017-02-23 55 views
1

例如有两个组件在不同状态名为/一个/BSPA当路径改变复位存储值到默认

所有数据被设置在存储数据。

如:

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 
} 

当总分组件并输入并重新输入数据是代替;

我试过unmont生命周期它可以工作,如果设置a.data为1;

但如果a是一个大对象,我不得不重写很多代码来重置。

如果您有什么好的想法,请告诉我如何解决这个问题。\

感谢

回答

2

你用什么代码进行复位?它应该很简单。

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

谢谢,好主意 – mqliutie

+0

但初始化状态可以修改,它不是一个常量数据 – mqliutie

+0

这意味着initialState.b = 2;它是正确的。我希望它会抛出一个错误 – mqliutie