reactjs - react - 警告 : ComponentXXX is changing an uncontrolled input of type undefined to be controlled

标签 reactjs input

我尝试只使用我的 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/

相关文章:

python - Python 中同一行上 'raw_input' 的倒计时循环

c - Scanf 在 C 中有空格

c++ - 检查用户输入是否输入了重复的数字

javascript - 我可以在 PureComponent 中使用 shouldComponentUpdate

javascript - 将文件名从 .js 更改为 .jsx 后,React 项目无法编译

javascript - React-Native ios如何使用android按钮

javascript - 如何使用react-router-dom <Link> 防止事件冒泡?

javascript - 使输入字段使用特定的键盘?有可能吗?

html - Firefox 中不同的填充输入和按钮

javascript - 使用 Javascript 的多线程请求