原因是,在您定义的状态下:
this.state = { fields: {} }字段作为空白对象,因此在第一次渲染期间
this.state.fields.name将是
undefined,输入字段的值将为:
value={undefined}因此,输入字段将变得不受控制。
在输入中输入任何值后,
fields状态将变为:
this.state = { fields: {name: 'xyz'} }那时输入字段被转换为受控组件;这就是为什么您得到此错误:
组件正在更改要控制的文本类型的不受控制的输入。
可能的解决方案:
1-将
fields进入状态定义为:
this.state = { fields: {name: ''} }2-或通过使用短路评估来定义值属性,如下所示:
value={this.state.fields.name || ''} // (undefined || '') = ''


