假设我有一个类似这样的 redux 形式。
{!this.state.username &&
<div>
<label>Username </label>
<div>
<input type="text" placeholder="eg. Shantanu Anand" {...username}/>
</div>
{username.touched && username.error && <div className = 'inputError'>{username.error}</div>}
</div>
}
<div>
<label>Phone Number</label>
<div>
<input placeholder="000-000-000" type="text" {...phone} defaultValue="Hello!"/>
{phone.touched && phone.error && <div className = 'inputError'>{phone.error}</div>}
</div>
</div>
现在 phone 字段始终存在,而 fullName 字段根据某些条件检查是动态的。
我的表单提交是这样的:
<button className = 'registerFormBtn' type="submit" onClick={this.handleSubmit.bind(this)} disabled={submitting}>
{submitting ? <i/> : <i/>} Submit
</button>
在我的 handleSubmit 函数中,我有:
if(_this.props.valid){
//if all fields are valid.
//my logic for form data posting,
}
现在,我想要的是基于我希望验证工作的条件。如果仅渲染电话,则仅对电话字段进行验证检查。如果两者都呈现 - 验证两者。
我已经为用户名字段提供了一个条件,这取决于条件有时会呈现,有时不会呈现。
但是当它不呈现时,在提交表单时,我无法在 if 条件内移动,因为用户名正在被验证,尽管它没有被呈现。
现在,我如何根据我的需要避免这种验证。