1

嗨,我尝试开始学习在 React 中使用 ImmutableJS。但我愣住了。当我尝试在减速器中使用 List 时,出现此错误“state.push 不是函数”

这是mi代码:

    import { List, Map} from 'immutable'
    import {FETCH_CONSTRAINTS, SET_AMOUNT_VALUE, SET_TERM_VALUE} from "../actions/actions";

export default function calculator(state = List(), action){
switch (action.type){
  case FETCH_CONSTRAINTS:
    return  state.push(Map({
       constraints: action.constraints}));
   default:
     state
  }
}

我不明白哪里有问题

4

2 回答 2

1

我注意到您的代码中有两个问题:

1-初始状态应该是来自不可变列表的实例new List()

2-返回语句switch->default

import { List, Map} from 'immutable'
import {FETCH_CONSTRAINTS, SET_AMOUNT_VALUE, SET_TERM_VALUE} from "../actions/actions";

export default function calculator(state = new List(), action){
switch (action.type){
  case FETCH_CONSTRAINTS:
    return  state.push(Map({
       constraints: action.constraints}));
  default:
    return state;
  }
}

我希望这有帮助。

于 2016-03-07T20:07:44.937 回答
0

谢谢,我已经来了是一个错误。一个例子已经被简化了,是的,我想念你回到那里。但是在我的代码中,我调用了其他操作,它们不使用不可变的。我一整天都在眼睛里,我瞎了。但也多亏了你,我解决了这个问题。

于 2016-03-07T20:06:01.543 回答