【发布时间】:2019-08-12 20:03:35
【问题描述】:
我在 React 组件中有这个构造函数:
constructor() {
super();
this.state = {
info: {
title: '',
description: '',
height: ''
}
}
...
还有一个输入由状态控制的表单:
<form onSubmit={this.handleFormSubmit}>
<label>Title:</label>
<input type="text" name="title" value={this.state.info.title} onChange={(e) => this.handleChange(e)} />
<label>Description:</label>
<input type="text" name="description" value={this.state.info.description} onChange={(e) => this.handleChange(e)} />
...
当我在表单上键入任何内容时,我猜我的处理程序有问题,因为我收到警告“警告:组件正在将文本类型的受控输入更改为不受控制。输入元素不应切换从受控到不受控(反之亦然)。决定在组件的生命周期内使用受控输入元素还是不受控输入元素。"
检查控制台,状态似乎正在更新每个正在输入的属性值,并删除其他属性,而它应该保留所有属性,并且只更新更改的属性。
这是我的处理程序:
handleChange(event) {
let { name, value } = event.target;
this.setState({
info: {
[name]: value
}
});
}
【问题讨论】:
标签: reactjs