我对反应和还原感到很陌生。我正在尝试将用户数据的状态从本地存储预加载到用户状态。
我经历了this question。当第一个@@INIT
动作传递给减速器时,它会传递预加载状态。但是,下次它不传递任何状态,并且先前的状态被新的空状态覆盖。
第二个@@INIT
是默认状态,第一个@@INIT
是预加载状态。
编码如下。
// in bootstrap.js
let localUser = getFromLocal('user').trim();
localUser = JSON.parse(localUser);
localUser = {"authReducers": fromJS({"user": localUser})}
let store = createStore(reducers, localUser, composeWithDevTools(middleware));
// auth_reducer.js
const defaultState = fromJS({
user: {
id: 0, name: '', token: '',
}, loginErrors: [], registrationErrors: [],
})
export default function auth (state = defaultState, action) {
switch ( action.type ) {
// ...
default:
console.log('state passed ', state.toJS(), 'action passed ', action);
let nState = defaultState.mergeDeep(state);
return nState;
}
}