다음과 같이 자식 구성 요소에서 부모 구성 요소로 데이터를 보내려고합니다.
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>
);
});
다음은 자식 구성 요소입니다.
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>
);
}
});
필요한 것은 부모 구성 요소에서 사용자가 선택한 값을 얻는 것입니다. 이 오류가 발생합니다.
Uncaught TypeError: this.props.onSelectLanguage is not a function
누구든지 문제를 찾도록 도와 줄 수 있습니까?
추신 : 하위 구성 요소가 json 파일에서 드롭 다운을 작성 중이며 json 배열의 두 요소를 서로 옆에 표시하려면 드롭 다운 목록이 필요합니다 (예 : "aaa, english"를 첫 번째 선택으로!)
{
"languages":[
[
"aaa",
"english"
],
[
"aab",
"swedish"
],
}
handleLanguageCode: function(langValue) { this.setState({ language: langValue }).bind(this); },
그러나 그것은 오류를 반환합니다 :ncaught TypeError: Cannot read property 'bind' of undefined
createClass
비 반응 방법을 자동 바인딩 합니다.
<SelectLanguage onSelectLanguage={this.handleLanguage*Code*}/>
오타.