2016-07-06 175 views
0

比方说,我有一个类似这样的REDX形式。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> 

现在手机字段总是存在,而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条件内移动导致用户名被验证,虽然它没有呈现。

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

回答

0

v6中,只有渲染的字段将被验证。

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