2015-10-14 62 views
1

當我第二次進入/ view /:id時,我得到了我的組件,它不會檢查收音機。我開始在列表組件中使用react-router作爲網站的索引,我點擊一個元素的視圖按鈕,收音機被選中,我返回到列表中並轉到另一個或相同的元素,並且它不再被檢查。當我在React開發工具中檢查組件時,收音機具有defaultChecked = true屬性。REACT - defaultChecked在第二次加載時不呈現檢查屬性

import React from 'react'; 
import { connect } from 'react-redux'; 

class LicenseRadios extends React.Component { 
    buildRadios() { 
    let { licenses, activeValue } = this.props; 

    return licenses.map(license => { 
     let checked = false; 

     if(activeValue !== undefined && activeValue === license.id){ 
     checked = true; 
     } 

     return (
     <div key={license.id} className="col l2"> 
      <p> 
      <input name="license" type="radio" id={'licenseRdo_' + license.id} value={license.id} defaultChecked={checked} /> 
      <label htmlFor={'licenseRdo_' + license.id}>{license.label}</label> 
      </p> 
     </div> 
    ); 
    }); 
    } 

    render() { 
    return (
     <div className="row"> 
     {this.buildRadios()} 
     </div> 
    ); 
    } 
} 

export default LicenseRadios; 

我試圖改變defaultCheckedchecked屬性,但它需要一個onChange事件。我不明白這個問題。有人可以幫我嗎?

謝謝

回答

1

defaultChecked道具只在最初的渲染使用。如果您需要在後續渲染中更新該值,則需要使用onChange函數來處理值更改。

查看文檔中的controlled components以更好地瞭解您遇到的問題。