[英]Getting this warning while running my react app
Warning: Failed prop type: You provided a value
prop to a form field without an onChange
handler.警告:失败的道具类型:您为没有onChange
处理程序的表单字段提供了value
道具。 This will render a read-only field.这将呈现一个只读字段。 If the field should be mutable use defaultValue
.如果该字段应该是可变的,请使用defaultValue
。 Otherwise, set either onChange
or readOnly
.否则,设置onChange
或readOnly
。
AddContact.js AddContact.js
import React, { Component } from "react";
export default class AddContact extends Component {
state = {
name: "",
email: "",
phone: "",
};
onSubmit = (e) => {
e.preventDefault();
console.log(this.state);
};
onChanger = (e) => this.setState({ [e.target.name]: e.target.value });
render() {
// const { name, email, phone } = this.state;
return (
<div className="card mb-3">
<div className="card-header">Add Contact</div>
<div className="card-body">
<form onSubmit={this.onSubmit}>
<div className="form-group">
<label htmlFor="name">Name</label>
<input
type="text"
name="name"
onChange={this.OnChanger}
value={this.state.name}
className="form-control form-control-lg"
placeholder="Name.."
/>
</div>
<div className="form-group">
<label htmlFor="email">Email</label>
<input
type="email"
name="email"
onChange={this.OnChanger}
value={this.state.email}
className="form-control form-control-lg"
placeholder="Email.."
/>
</div>
<div className="form-group">
<label htmlFor="phone">Phone</label>
<input
type="text"
name="phone"
onChange={this.OnChanger}
value={this.state.phone}
className="form-control form-control-lg"
placeholder="Phone.."
/>
</div>
<input
type="submit"
value="Add Contact"
className="btn btn-light btn-block"
/>
</form>
</div>
</div>
);
}
}
Your last element should be a button not an input.您的最后一个元素应该是按钮而不是输入。
<input
type="submit"
value="Add Contact"
className="btn btn-light btn-block" />
Change it to <button type="submit" value="Add Contact" className="btn btn-light btn-block" />
将其更改为<button type="submit" value="Add Contact" className="btn btn-light btn-block" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.