2017-02-23 27 views
1

К примеру есть два компонента и B в другом состоянии, названные / и SPA, когда изменение маршрута сброс значение магазина по умолчанию

Всех данные установлены в данном хранилище.

например:

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 
} 

Когда из компонента и введите B и повторно а Данные является вместо ;

Я попытался сбросить значение в 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

Но InitialState может изменить, это не константные данные – mqliutie

+0

Это значит initialState.b = 2; Верно. Я хочу, чтобы он выдал ошибку – mqliutie