Tôi có một thành phần, giả sử nó có chứa một biểu mẫu. Biểu mẫu này có các thành phần con mà chủ yếu là các tiện ích UI để xuất các đầu vào văn bản và các menu chọn.Phản ứng: Cách nghe các sự kiện thành phần con
Các thành phần menu chọn là một chút ưa thích và thực hiện một số trạng thái duy trì bằng sự kiện onChange.
Câu hỏi của tôi là; làm thế nào để móc vào sự kiện onChange cho một menu chọn từ thành phần cha mẹ (form)? Tôi không thể vượt qua onChange thông qua các đạo cụ như tôi đã có onChange được chỉ định bên trong thành phần được chọn và tôi không muốn ghi đè lên nó.
Ví dụ:
var Form = React.createClass({
handleSelectChange: function(){
// Do something when <Select /> changes
},
render: function() {
var selectMenuOptions = [
{label: 'Choose...', value: ''},
{label: 'First option', value: 'one'},
{label: 'Second option', value: 'two'}
];
return (
<form>
<Select name="selectMenu" id="selectMenu" options={selectMenuOptions} />
</form>
);
}
});
var Select = React.createClass({
getDefaultProps: function() {
return {
options: [],
className: "select"
};
},
getInitialState: function() {
return {
buttonText: 'Loading...',
defaultValue: null
};
},
handleChange: function (e) {
// Update buttonText state
},
render: function() {
return (
<div className={this.props.className}>
<div className="select__button">{this.state.buttonText}</div>
<select className="select__selector"
ref="select"
onChange={this.handleChange}>
{this.props.options.map(function(option, i){
return (<Option option={option} key={i} />);
})}
</select>
</div>
);
}
});
"Tôi có một thành phần, giả sử nó chứa biểu mẫu". Vui lòng đăng mã cho các thành phần thực tế. –
Ví dụ về mã được thêm vào. – Simon