immutable中往数组里push失败

来源:7-9 使用 Immutable.js 来管理store中的数据

Nnn_Lillian

2019-12-29

老师,学习完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回答

Dell

2020-01-05

merge(fromJS{})

0
2
Nnn_Lillian
非常感谢老师,但是我自己也摸索着改了一下,改成了这样 return state.merge({ list: List(state.get('list')).push(newItem), inputValue: '' }); 这样也是可以成功的,但是这样的改法和老师的原理是不是不太一样
2020-01-07
共2条回复

React零基础入门到实战,完成企业级项目简书网站开发

主流新技术 React-redux,React-router4,贯穿基础语法

5275 学习 · 2496 问题

查看课程