我目前正在使用React.js。
尽管我已经在我的component.state中有效输入了元素的值,但我仍然收到此警告。
目标是触发我的按钮的禁用版本,然后在填写表格时触发我的按钮的启用版本。因此,每种情况都有两个版本的按钮。希望是有道理的。
这是我的代码:
component.state:
this.state= {nameSubmit: "offSubmit"}
component.form.element:
<div>
{formFilled ? (
<input className="formLabel" type="submit" name={this.state.nameSubmit || "" } value={this.state.nameSubmit || ""}/>
) : (
<input className="formLabel" type="submit" name={this.state.nameSubmit || ""} defaultValue={this.state.nameSubmit || ""}/>
)}
</div>
当我的“ formFilled”元素传递为true时,该组件会以可操作的版本触发,例如:
this.setState({nameSubmit: "onSubmit"})
。
但是这时我的控制台返回了我:
警告:组件正在更改不受控制的输入 类型提交要控制。输入元素不应从 不受控制到受控制(反之亦然)。确定使用 受控制或不受控制的输入元素 组件。
在我看来,我几乎无法控制表单元素,甚至使用状态来确定所有值以进行测试。所以我无法弄清楚我的代码出了什么问题