为什么表单不在反应中的输入字段中输入

why form not taking input in the input field in react

在我的表单字段中,我不能写 anything.there 只是显示表单和输入字段,不能像往常一样输入名称字段其他 fields.I 只是声明我的代码中给出的状态。我不明白我该怎么办我找不到 error.Where 是 error.I 是反应中的新人。你能帮我解决这个问题吗?

import axios from 'axios';
import React, { Component } from 'react'
import { Form } from 'react-bootstrap';
import { Link } from 'react-router-dom';

class AddStudent extends Component {
    state = {
        name:'',
        course:'',
        email:'',
        phone:'',
    }
     
    handleInput = (e) => {
        this.setState=
        ({
           [e.target.name]:e.target.value
        });
    }

    saveStudent = async (e) =>{ 
        e.preventDefault();
        const res = await axios.post('http://localhost:8000/api/add-student',this.state);
        if(res.data.states === 200)
        {
            console.log(res.data.message);
            this.setState ({
                name:'',
                course:'',
                email:'',
                phone:'',

            });
        }
    }


    render()
    {
        return (
    <div className="container">
        <div className="row">
            <div className="col-md-6">
            <div className="card">
            <div className="card-holder">
<h4>
   Add Student
    <Link to={'/'} className="btn btn-primary btn-sm float-end"> Back </Link>
</h4>
            </div>
<div className='card-body'>

<form onSubmit={this.saveStudent} >

<div className="form-group mb-3">
<label>Student Name</label>
<input type="text" name="name" onChange={this.handleInput}  value={this.state.name} className="form-control" />
</div>
<div className="form-group mb-3">
<label>Student Course</label>
<input type="text" name="course" onChange={this.handleInput}  value={this.state.course} className="form-control" />
</div>
<div className="form-group mb-3">
<label>Student Email</label>
<input type="text" name="email" onChange={this.handleInput}   value={this.state.email} className="form-control" />
</div>
<div className="form-group mb-3">
<label>Student Phone</label>
<input type="text" name="phone" onChange={this.handleInput}  value={this.state.phone}  className="form-control" />
</div>

<div className="form-group mb-3">
<button type="submit" className="btn btn-primary">Save Student</button>
</div>

  </form>

</div>

</div>

            </div>
            </div>

        </div>
      
    
  );
    }
  
}

export default AddStudent

您必须将 setState 用作单独的函数,而不是变量。 只需更改 handleInput 函数,如下所示。

 handleInput = (e) => {
   this.setState({ [e.target.name]: e.target.value });
 };

您的 handleInput 函数中有一个 typo。只需从 handleInput 函数中删除 = 符号即可。

handleInput = (e) => {
  this.setState({ [e.target.name]:e.target.value });
}