我学会了如何使用Teropa's incredible tutorial进行Redux。但是,他的实现使用了Immutable,虽然很棒,但是我想从我当前应用程序的构建中删除它。我试图弄清楚如何在不依赖于Immutable的情况下维护以下内容。我不知何故需要修改reducer.js
以取出Immutable,但导出的函数在没有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;
}
答案 0 :(得分:1)
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
中的使用方式