Ben aşağıdaki gibi bir alt bileşen onun üst veri veri göndermeye çalışıyorum:
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>
);
});
ve işte alt bileşen:
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>
);
}
});
Ihtiyacım olan üst bileşen kullanıcı tarafından seçilen değeri elde etmektir. Bu hatayı alıyorum:
Uncaught TypeError: this.props.onSelectLanguage is not a function
Birisi sorunu bulmama yardım edebilir mi?
PS Çocuk bileşeni bir json dosyasından bir açılır liste oluşturuyor ve json dizisinin her iki unsurunu yan yana göstermek için açılan listeye ihtiyacım var (örneğin: "aaa, ingilizce" ilk seçenek olarak!)
{
"languages":[
[
"aaa",
"english"
],
[
"aab",
"swedish"
],
}
handleLanguageCode: function(langValue) { this.setState({ language: langValue }).bind(this); },
Ama bir hata döndürür:ncaught TypeError: Cannot read property 'bind' of undefined
createClass
reaksiyona girmeyen metotları özetler.
<SelectLanguage onSelectLanguage={this.handleLanguage*Code*}/>
bir yazım hatası.