我尝试只使用我的 props 作为我的输入值 - 内部状态没有控制组件。 我猜它可以工作,但我收到以下错误:
warning.js:33 警告:ComponentXXX 正在将未定义类型的不受控制的输入更改为受控制。输入元素不应从不受控制切换到受控制(反之亦然)。决定在组件的生命周期内使用受控或非受控输入元素。
这是我的代码:
输入:
<input type="radio" name="answer" value="ValueType1"
checked={this.props.valueType === "ValueType1"}
onChange={this.handleValueTypeChange}/>
界面:
declare interface Manager1 {
valueType: string;
}
更改功能:
private handleValueTypeChange(event: any) {
this.props.onUpdateMethod({
...this.props.manager {
valueType: event.target.value,
}
});
}
有什么想法吗?
最佳答案
如果您最初传递 undefined 或 null 作为 value 属性,则该组件将作为“不受控制”的组件启动。与组件交互后,您可以设置一个值并使用react,将其更改为“受控”组件,并发出警告。
查看此值 - checked={this.props.valueType === "ValueType1"}
是否最初设置为 undefined
。如果您希望不选中它来启动,请确保将其设置为该值或 false
。
关于reactjs - react - 警告 : ComponentXXX is changing an uncontrolled input of type undefined to be controlled,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50970793/