2016-07-06 53 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作爲驗證函數的第二個參數傳遞,因此您試圖測試條件的信息可能在此處。