我试图仅将道具用于输入值-内部状态不受控制。 我猜它正常工作,但是出现以下错误:
warning.js:33警告:ComponentXXX正在更改类型undefined为受控的不受控制的输入。输入元素不应从不受控制切换为受控制(反之亦然)。在组件的使用寿命中决定使用受控还是不受控制的输入元素。
这是我的代码:
输入:
<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,
}
});
}
有什么想法吗?
答案 0 :(得分:1)
如果最初将undefined或null作为值prop传递,则该组件以“不受控制”的组件开始使用寿命。与组件交互后,您可以设置一个值并做出反应以将其更改为“受控”组件,并发出警告。
查看此值-checked={this.props.valueType === "ValueType1"}
最初是否设置为undefined
。如果您希望它不经选择就开始,请确保将其设置为或false
。