请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

immutable中往数组里push失败

老师,学习完immutable之后我又返回去修改了TodoList的demo。
在reducer中

const defaultState = fromJS({
    inputValue: '',
    list: []
})

export default (state = defaultState, action) => {
    if (action.type === actionTypes.UPDATE_TODO_LIST) {
        return state.merge({
            list: state.get('list').push(fromJS("new")),
            inputValue : fromJS('')
        });
    }
    return state;
}

但是执行的过程中,浏览器会报错:
index.js:20 Uncaught TypeError: Invalid attempt to spread non-iterable instance

正在回答

1回答

merge(fromJS{})

0 回复 有任何疑惑可以回复我~
  • Dell #1
    inputValue: ‘’ 不需要fromJS
    回复 有任何疑惑可以回复我~ 2020-01-05 23:18:45
  • 提问者 Nnn_Lillian #2
    非常感谢老师,但是我自己也摸索着改了一下,改成了这样
     return state.merge({
                    list: List(state.get('list')).push(newItem),
                    inputValue: ''
                });
    
    这样也是可以成功的,但是这样的改法和老师的原理是不是不太一样
    回复 有任何疑惑可以回复我~ 2020-01-07 21:52:19
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信