TypeError:无法读取属性' isCompleted'未定义的

时间:2017-11-14 04:23:18

标签: reactjs

为什么不定义?当我尝试控制日志时,它会在每次点击任务时显示undefine。

const todos = [
{
    task: 'watching react tuts',
    isCompleted: true
},
{
    task: 'eat dinner',
    isCompleted: false
}
];


App.js
        toggleTask(task) {
        const foundTodo = _.find(this.state.todos, todo => task.todo == task);

        foundTodo.isCompleted = !foundTodo.isCompleted;
        this.setState({ todos: this.state.todos });
      }

enter image description here

我有新的反应......所以我尝试创建一个todos应用程序。

2 个答案:

答案 0 :(得分:1)

只需改变:

todo => task.todo == task

todo => todo.task == task

答案 1 :(得分:1)

假设您的示例中的代码与您的应用程序中的代码完全相同,那么可能是由于错误的变量命名。你有:

toggleTask(task) {
  const foundTodo = _.find(this.state.todos, todo => task.todo == task);
  ..
}

在你的箭头函数中todo是参数,但是你做task.todo == task

可能应该是:

toggleTask(task) {
  const foundTodo = _.find(this.state.todos, todo => todo.task == task);
  ..
}
相关问题