我学习了如何使用Teropa's incredible tutorial还原。但是,他的实现使用Immutable,虽然很棒,但是我想从当前应用的构建中删除它。我试图弄清楚如何在不依赖Immutable的情况下维护以下内容。我以某种方式需要修改reducer.js
以取出不可变的,但是没有state = Map()
导出的函数仍然会失败。
Index.jsx
store.dispatch({
type: 'SET_STATE',
state: { ... }
});
action_creators.js
export function setState(state) {
return {
type: 'SET_STATE',
state
};
}
reducer.js
import { Map } from 'immutable';
function setState(state, newState) {
return state.merge(newState);
}
export default function(state = Map(), action) {
switch (action.type) {
case 'SET_STATE':
return setState(state, action.state);
}
return state;
}
最佳答案
function setState(state, newState) {
return {
...state,
...newState
};
}
export default function(state = {}, action) {
switch (action.type) {
case 'SET_STATE':
return setState(state, action.state);
}
return state;
检查我如何在状态管理库https://github.com/nosovsh/reduceless/blob/master/src/wrapReducerWithSetGlobalState.js#L9中使用它
关于javascript - 如何在React中设置Redux而没有不可变?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38654252/