您好我尝试开始学习在React中使用ImmutableJS。但我冻结了。当我尝试在我的reducer中使用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
}
}
我不明白问题在哪里
答案 0 :(得分:1)
我注意到代码中有两个问题:
1-初始状态应该是来自Immutable List new List()
switch->default
中的2- return语句
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;
}
}
我希望这有帮助。
答案 1 :(得分:0)
谢谢,我已经来了,这是一个错误。一个例子已被简化,是的,我想念你回到那里。但在我的代码中,我调用了其他操作,并且它们不使用不可变的。我整天都在眼里看着它而且我失明了。但也要感谢你,我解决了这个问题。