我有一个简单的react组件,其形式相信可以控制一个输入:
import React from 'react';
export default class MyForm extends React.Component {
constructor(props) {
super(props);
this.state = {}
}
render() {
return (
<form className="add-support-staff-form">
<input name="name" type="text" value={this.state.name} onChange={this.onFieldChange('name').bind(this)}/>
</form>
)
}
onFieldChange(fieldName) {
return function (event) {
this.setState({[fieldName]: event.target.value});
}
}
}
export default MyForm;
运行我的应用程序时,出现以下警告:
警告:MyForm正在更改要控制的文本类型的不受控制的输入。输入元素不应从不受控制切换为受控制(反之亦然)。确定在组件的使用寿命中使用受控或非受控输入元素
我相信我的输入是有价值的,因此受到控制。我想知道我在做什么错?
我正在使用React 15.1.0
我相信我的输入是有价值的,因此受到控制。
为了控制输入,其值必须与状态变量的值相对应。
在您的示例中,最初没有满足该条件,因为this.state.name
没有初始设置。因此,输入最初是不受控制的。一旦onChange
处理程序被触发的第一次,this.state.name
被设定。此时,满足上述条件,并且认为输入已受到控制。从不受控制到受控制的过渡会产生上述错误。
通过this.state.name
在构造html" target="_blank">函数中初始化:
例如
this.state = { name: '' };
从一开始就将控制输入,解决问题。有关更多示例,请参见React Controlled
Components
。
与此错误无关,您应该只有一个默认导出。您上面的代码有两个。
我得到了这个错误,我是新的反应。我看过其他帖子,但仍然不能解决这个问题。我们将不胜感激。谢谢 警告:组件正在更改要控制的电子邮件类型的未控制输入。输入元素不应该从不受控制切换到受控制(反之亦然)。决定在组件的生存期内使用受控还是不受控的输入元素。更多信息在输入(由编辑创建)中,在div(由编辑创建)中,在div(由编辑创建)中,在窗体(由编辑创建)中,在div(由编辑创建)中
问题内容: 我是React的新手,可能缺少正确的术语来找到我的问题的解决方案。没那么难。 我正在构建一个简单的应用程序,它显示一组问题,一次显示一个问题。回答一个问题后,显示下一个问题。 我有一个呈现3个复选框的组件,每个复选框代表一个可能的问题。 在我的主要组件内部,我这样调用该组件: 是我的函数,该函数递增以显示下一个问题: 一切正常,除了:当显示下一个问题时,我希望所有3个复选框都不再选中。
使用ui textfield时出错 警告:TextField正在将text类型的受控输入更改为不受控。输入元素不应从受控切换到非受控(或反之亦然)。决定在组件的生存期内使用受控还是不受控输入元素
问题内容: 警告:组件正在更改要控制的文本类型的不受控制的输入。输入元素不应从不受控制切换为受控制(反之亦然)。确定在组件的使用寿命中使用受控或非受控输入元素。* 以下是我的代码: 问题答案: 原因是,在您定义的状态下: 字段作为空白对象,因此在第一次渲染期间将是,输入字段的值将为: 因此,输入字段将变得不受控制。 在输入中输入任何值后,状态将变为: 那时输入字段被转换为受控组件;这就是为什么您得
我正在对我的组件进行排序 我在选择标记中有一个错误。获取错误props.filters.sortby的值最初是日期。当我试图从下拉列表中更改它时,错误发生了。