Tôi đang cố gắng gửi dữ liệu từ một thành phần con đến cha mẹ của nó như sau:
const ParentComponent = React.createClass({
getInitialState() {
return {
language: '',
};
},
handleLanguageCode: function(langValue) {
this.setState({language: langValue});
},
render() {
return (
<div className="col-sm-9" >
<SelectLanguage onSelectLanguage={this.handleLanguage}/>
</div>
);
});
và đây là thành phần con:
export const SelectLanguage = React.createClass({
getInitialState: function(){
return{
selectedCode: '',
selectedLanguage: '',
};
},
handleLangChange: function (e) {
var lang = this.state.selectedLanguage;
var code = this.state.selectedCode;
this.props.onSelectLanguage({selectedLanguage: lang});
this.props.onSelectLanguage({selectedCode: code});
},
render() {
var json = require("json!../languages.json");
var jsonArray = json.languages;
return (
<div >
<DropdownList ref='dropdown'
data={jsonArray}
value={this.state.selectedLanguage}
caseSensitive={false}
minLength={3}
filter='contains'
onChange={this.handleLangChange} />
</div>
);
}
});
Những gì tôi cần là để có được giá trị được lựa chọn bởi người dùng trong thành phần cha. Tôi đang gặp lỗi này:
Uncaught TypeError: this.props.onSelectLanguage is not a function
Bất cứ ai có thể giúp tôi tìm ra vấn đề?
PS Thành phần con đang tạo danh sách thả xuống từ tệp json và tôi cần danh sách thả xuống để hiển thị cả hai thành phần của mảng json cạnh nhau (như: "aaa, tiếng Anh" là lựa chọn đầu tiên!)
{
"languages":[
[
"aaa",
"english"
],
[
"aab",
"swedish"
],
}
handleLanguageCode: function(langValue) { this.setState({ language: langValue }).bind(this); },
Nhưng nó trả về một lỗi:ncaught TypeError: Cannot read property 'bind' of undefined
createClass
autobinds phương pháp không phản ứng.
<SelectLanguage onSelectLanguage={this.handleLanguage*Code*}/>
một lỗi đánh máy.