2016-07-01 17 views
0

我想访问ReactJS中“检查”的孩子属性的布尔值。现在我有以下渲染方法。如何在ReactJS中“检查”访问孩子属性的布尔值?

类LoginCard.js

render() { 
    return (
     <Card style={styles.card}> 
      <UserIcon/> 
      <UPSection ref="inputs" updateUName={this.updateInputState_Username} updatePWord={this.updateInputState_Password}/> 
      <RememberMe ref="RemMeChk"/> //This conponent containing the checkbox. 
      <LoginBtn onClick={this.handleLoginBtnClicked}/> 
     </Card> 
    ); 
} 

我想在组件RememberMe的布尔checked值。以下显示RememberMe的渲染方法。

类RememberMe.js

render() { 
    return (
     <div style={styles.div}> 
      <Checkbox ref="rm" label="Remember Me" labelStyle={styles.text} /> 
     </div> 
    ); 
} 

组分Checkbox是从Material UI并且它具有的checked财产。我尝试在类LoginCard中使用var isRemMeChked = ReactDOM.findDOMNode(this.refs.RemMeChk.refs.rm).checked;来访问bool值,但它未定义。访问bool值的正确方法是什么?

回答

1

在RememberMe.js取值

RememberMe.js

getValue() { 
    return this.refs.rm.checked; 
} 
render() { 

    return (
     <div style={styles.div}> 
      <Checkbox ref="rm" label="Remember Me" labelStyle={styles.text} /> 
     </div> 
    ); 
} 

登录卡 的getValue(){ 回报this.refs.RemMeChk.getValue() } render(){

return (
     <Card style={styles.card}> 
      <UserIcon/> 
      <UPSection ref="inputs" updateUName={this.updateInputState_Username} updatePWord={this.updateInputState_Password}/> 
      <RememberMe ref="RemMeChk"/> //This conponent containing the checkbox. 
      <LoginBtn onClick={this.handleLoginBtnClicked}/> 
     </Card> 
    ); 
} 
+0

为什么你可以在render方法中声明一个方法? – Casper

+0

对不起,它有一个错字 –

+0

我测试过该方法可以正常返回,但'this.refs.rm.checked'是'undefined'。我也测试过返回'ReactDOM.findDOMNode(this.refs.rm).checked',但它也是'undefined'。如何获取Checkbox中的checked bool值?该文件指出,有一个“检查”的财产。 – Casper