反应-无法设置状态值

时间:2018-12-19 08:52:39

标签: javascript reactjs setstate

我是React的新手

当我伤心欲绝时,我的代码遇到了麻烦。 因为我无法设置addTodo函数的状态。 无法为任务增加新的价值。

我的代码在这里:

class App extends Component {
  constructor(props) {
    super(props)
    const tasks = [
      { title: "First Proejct", id: 0 }
    ]
    this.state = {
      tasks,
      uniqueId: 1
    }

  }

  addTodo = (title) => {
    const {
      tasks,
      uniqueId
    } = this.state;

    const task = {
      title,
      id: uniqueId,
    }

    const newTasks = [...tasks, task]

    this.setState({
      newTasks,         <-- HERE. :(
      uniqueId: uniqueId + 1
    })
    console.log(newTasks)
    console.log(task)

  }

  render() {
    return (
      <div className="todoApp">
        <h1>ToDO APP</h1>
        <TodoInput addTodo={this.addTodo} />
        <TodoList tasks={this.state.tasks} />
      </div>
    );
  }
}

export default App;

所以..

我做错了什么吗?

1 个答案:

答案 0 :(得分:4)

您应该调用:

this.setState({
  tasks: newTasks,
  uniqueId: uniqueId + 1
});