ReactJS 中的受控与不受控输入错误
使用 React 组件时,了解受控输入和不受控输入之间的区别非常重要。默认情况下,输入是不受控制的,这意味着它们的值由 DOM 管理。然而,当我们在输入上设置 value 属性时,它就变成了受控输入,这意味着它的值由 React 管理。
如果组件最初将不受控输入渲染为受控输入而没有定义初始值,React 将发出像您提到的那样的警告:
“组件正在更改要控制的文本类型的不受控制的输入。输入元素不应从不受控制切换到受控制(反之亦然)”。
在提供的代码中:
render() { return( <div className="form-group"> <input value={this.state.fields["name"]} onChange={this.onChange.bind(this, "name")} className="form-control" type="text" refs="name" placeholder="Name *" /> <span style={{color: "red"}}>{this.state.errors["name"]}</span> </div> ) }
出现问题是因为在构造函数中, fields 被初始化为空对象: fields: {} 。这意味着最初, this.state.fields.name 将是未定义的。结果,输入字段将不受控制。但是,当用户输入值时,状态会更新,使输入成为受控组件。这种不一致的行为会触发 React 警告。
可能的解决方案:
以上是以下是一些标题选项,重点关注问题方面和 ReactJS 上下文: 1. **React 中的受控输入与非受控输入:如何避免'切换状态”警告?** 2. **重新的详细内容。更多信息请关注PHP中文网其他相关文章!