javascript React:无法将新任务添加到任务数组中

fgw7neuy  于 2023-01-11  发布在  Java
关注(0)|答案(1)|浏览(139)

我是React的新手,我正在尝试创建一个待办事项列表项目。我正在尝试通过输入将一个新任务添加到任务数组中,但当我按Enter键时,屏幕上没有添加任何内容。有人能帮忙吗?
App.js

import React, { Component } from "react";
import Tasks from "./Components/tasks";

class App extends Component {

    constructor(props) {
      super(props);

      this.state = {
          newTask: '',
          tasks: [
              { id: 1, text: "study" },
              { id: 2, text: "read" },
              { id: 3, text: "gym" },
          ]
      };
    }

    handleSubmit(e) {
      e.preventDefault();
      const tasks = [...this.state.tasks];
      tasks.push({id: 4, text: this.state.newTask});
      this.setState({ tasks: tasks });
    }

    handleChange= (e) => {
      this.setState({newTask: e.target.value});
    }

    render() {
        return (
            <div className="App">
                <h1>To Do List</h1>

                <form onSubmit={this.handleSubmit}>
                  <input type="text" placeholder="Enter task" value={this.state.newTask} onChange={this.handleChange}/>
                </form>

                <Tasks tasks={this.state.tasks} />
            </div>
        );
    }
}

export default App;

Adicionaly我在控制台上得到这个错误:error

bkhjykvo

bkhjykvo1#

需要将函数绑定到类
一个简单的解决方案是使用箭头函数语法

handleSubmit = (e) =>  {

代替

handleSubmit(e) {

还有其他的方法可以做这件事。
您可以阅读本文以了解更多https://www.freecodecamp.org/news/this-is-why-we-need-to-bind-event-handlers-in-class-components-in-react-f7ea1a6f93eb/

相关问题