Javascript 如何在React中设置Redux而不使用不可变项?

Javascript 如何在React中设置Redux而不使用不可变项?,javascript,reactjs,redux,immutable.js,Javascript,Reactjs,Redux,Immutable.js,我学会了如何重新使用。然而,他的实现使用的是不可变的,虽然很棒,但我想从当前应用程序的构建中删除它。我正试图弄明白如何在不依赖Immutable的情况下维护以下内容。我需要修改reducer.js以去掉Immutable,但是导出的函数在没有state=Map()的情况下一直失败 Index.jsx store.dispatch({ type: 'SET_STATE', state: { ... } }); action_creators.js export function setS

我学会了如何重新使用。然而,他的实现使用的是不可变的,虽然很棒,但我想从当前应用程序的构建中删除它。我正试图弄明白如何在不依赖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;
}

检查我如何在我的状态管理库中使用它

您需要用标准JavaScript对象替换您的
映射
,并使用
对象。分配
将内容合并到其中。我建议你阅读这本书,它会带你一步一步地完成这一过程。
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;