Saya mencoba mengirim data dari komponen anak ke induknya sebagai berikut:
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>
);
});
dan di sini adalah komponen anak:
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>
);
}
});
Yang saya butuhkan adalah untuk mendapatkan nilai yang dipilih oleh pengguna di komponen induk. Saya mendapatkan kesalahan ini:
Uncaught TypeError: this.props.onSelectLanguage is not a function
Adakah yang bisa membantu saya menemukan masalahnya?
PS Komponen anak membuat dropdown dari file json, dan saya perlu daftar dropdown untuk menunjukkan kedua elemen array json di samping satu sama lain (seperti: "aaa, bahasa Inggris" sebagai pilihan pertama!)
{
"languages":[
[
"aaa",
"english"
],
[
"aab",
"swedish"
],
}
handleLanguageCode: function(langValue) { this.setState({ language: langValue }).bind(this); },
Tetapi mengembalikan kesalahan:ncaught TypeError: Cannot read property 'bind' of undefined
createClass
autobinds metode tidak bereaksi.
<SelectLanguage onSelectLanguage={this.handleLanguage*Code*}/>
salah ketik.