【发布时间】:2016-06-03 21:46:41
【问题描述】:
我有一个内部带有 clickHandler 的组件。我想将该状态传递给复选框的父组件,但我不太确定如何从复选框组件中获取它。
FIDDE:https://jsfiddle.net/kirkbross/7km493bd/4/
这里是复选框组件:
import React from 'react';
class CheckOnOff extends React.Component {
constructor() {
super();
this.state = {
checked: false
}
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
this.setState({checked: !this.state.checked});
}
render() {
const text = this.state.checked ? 'On' : 'Off';
return (
<div>
<input type="checkbox" className="on-off-switch" id={this.props.id} ></input>
<label htmlFor={this.props.id} onClick={this.handleClick} />
<span>{text}</span>
</div>
)
}
}
module.exports = CheckOnOff;
这是父组件:
import React from 'react';
import CheckOnOff from 'CheckOnOff';
const Settings = () => (
<div id="settings">
<ul>
<li>
<span>Auto Sleep:</span>
<span>{text} from auto_sleep instance</span>
<CheckOnOff id="auto_sleep" />
</li>
<li>
<span>Auto Light:</span>
<span>{text} from auto_light instance</span>
<CheckOnOff id="auto_light" />
</li>
</ul>
</div>
);
export default Settings;
【问题讨论】:
-
Facebook 为此使用
onChange属性。 -
你可以给你的孩子一个父母的回调函数,它会在checkbox组件的handleClick内部调用
-
不确定如何形成语法。我在上面添加了一个小提琴。