0

假设我有一个类似这样的 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 条件内移动,因为用户名正在被验证,尽管它没有被呈现。

现在,我如何根据我的需要避免这种验证。

4

1 回答 1

0

v6中,仅会验证呈现的字段。

但是,您应该会发现props是作为第二个参数传递给您的验证函数的,因此您试图测试您的条件的信息可能就在那里。

于 2016-07-07T13:19:11.257 回答