为了账号安全,请及时绑定邮箱和手机立即绑定

控制台报错

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

正在回答

1 回答

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


1 回复 有任何疑惑可以回复我~
#1

EWL 提问者

之前已经解决了,谢谢老师的回复。非常感谢
2018-10-19 回复 有任何疑惑可以回复我~
#2

慕后端6136280 回复 EWL 提问者

我不是老师呢,呵呵
2018-11-02 回复 有任何疑惑可以回复我~
#3

慕仙3135789

在createTodo中将todos打印了也是undefined?不知道为啥?
2019-09-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

控制台报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信