控制台报错

来源:4-2 实现TodoList

EWL

2018-08-19 21:45

老师,在推入新的todo的时候,控制台出现了Uncaught TypeError: Cannot read property 'unshift' of undefined的错误,请问是怎么回事呢?这里我尝试着打印了this.props.store.todos,但是显示为undefined

写回答 关注

1回答

  • 慕后端6136280
    2018-10-18 09:54:37

    unshift是js原生数组中的方法,它的作用是向数组的头部添加一个或多个元素。如果你控制台打印出Cannot read property 'unshift' of undefined。说明你的todo根本就不是一个数组。你可以在你的createTodo中将你的todos打印一下看看是什么


    @action.bound createTodo(title) {
        console.log(this.todos);
       this.todos.unshift(new Todo(title))
    }

    这是我打印出的信息

    1. Proxy {length: 0, Symbol(mobx administration): ObservableArrayAdministration}

      1. [[Handler]]: Object

      2. [[Target]]: Array(1)

        1. 0: Todo {id: 0.21948423547067275, Symbol(mobx did run lazy initializers): true, Symbol(mobx administration): ObservableObjectAdministration$$1}

        2. length: 1

        3. Symbol(mobx administration): ObservableArrayAdministration {owned: false, values: Array(1), proxy: Proxy, lastKnownLength: 1, atom: Atom$$1, …}

        4. __proto__: Array(0)

      3. [[IsRevoked]]: false


    慕仙3135...

    在createTodo中将todos打印了也是undefined?不知道为啥?

    2019-09-10 11:46:29

    共 3 条回复 >

mobx入门基础教程

mobx框架基础入门,使用mobx做状态管理

18816 学习 · 54 问题

查看课程

相似问题