【发布时间】:2017-10-16 10:56:18
【问题描述】:
我正在尝试根据 Dan Abramov here 的建议实施 redux 重置状态操作。我已经像这样设置了我的减速器和存储:
Index.js:
import {applyMiddleware,createStore} from 'redux';
import combineReducers from './reducers/index';
import {wrapStore,alias} from 'react-chrome-redux';
import thunk from 'redux-thunk';
import aliases from './aliases/aliases';
const combineAppReducers = ( state, action ) => {
if ( action.type === 'LOG_OUT' ) {
state = undefined;
}
return combineReducers(state, action)
}
const middlewares = [alias(aliases), thunk];
const store = createStore(combineAppReducers,applyMiddleware(...middlewares));
wrapStore(store, {
portName: 'example'
});
Reducers.js:
import {combineReducers} from 'redux';
import userAuthReducer from './userAuthReducer';
import manageTeamsReducer from './manageTeamsReducer';
function lastAction(state = null, action) {
return action;
}
export default combineReducers({
userAuthReducer,manageTeamsReducer,lastAction
});
看起来我已经正确设置了一切,但应用程序没有重置状态,有人能发现我哪里出错了吗?
这是我更密切关注的另一篇文章:
https://medium.com/@agungsantoso/how-to-reset-the-state-of-a-redux-store-7f9d85b190bc
【问题讨论】:
-
您是否尝试过将状态设置为空对象?喜欢
state = {}? -
还有什么错误?
-
我认为这不是最好的方法,但是,您可以将您的状态恢复为其第一个值调度:
@@INIT操作。 -
不幸的是,它是一个 chrome 扩展,所以它并不总是吐出错误。我应该在哪里将状态设置为空对象?
-
我不能,因为此时应用程序编译时出现错误
标签: javascript reactjs redux react-redux