嗨,我找到了一个单一字段表单的答案……但是如果我们有一个包含多个字段的表单怎么办?
如果您有 1 个字段,则可以禁用它,但是当您想基于多个字段禁用它时,它不起作用:
getInitialState() {
return {email: ''}
},
handleChange(e) {
this.setState({email: e.target.value})
},
render() {
return <div>
<input name="email" value={this.state.email} onChange={this.handleChange}/>
<button type="button" disabled={!this.state.email}>Button</button>
</div>
}
})
原文由 Khalil Gharbaoui 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是表单验证的基本设置:
在更复杂的设置中,您可能希望将每个输入字段放在一个单独的组件中。并使代码更干(注意更改处理程序中的重复)。
那里也有各种反应形式的解决方案,就像 这里 一样。