反应-警告:ComponentXXX正在将类型undefined的不受控制的输入更改为受控制

时间:2018-06-21 14:17:26

标签: reactjs input

我试图仅将道具用于输入值-内部状态不受控制。 我猜它正常工作,但是出现以下错误:

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,
         }
    });
}

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果最初将undefined或null作为值prop传递,则该组件以“不受控制”的组件开始使用寿命。与组件交互后,您可以设置一个值并做出反应以将其更改为“受控”组件,并发出警告。

查看此值-checked={this.props.valueType === "ValueType1"}最初是否设置为undefined。如果您希望它不经选择就开始,请确保将其设置为或false