Wie werden Daten von der untergeordneten Komponente in ReactJS an die übergeordnete Komponente übergeben?

Ich versuche wie folgt, Daten von einer untergeordneten Komponente an die übergeordnete Komponente zu senden:

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>
        );
});

und hier ist die untergeordnete Komponente:

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>            
        );
    }
});

Ich muss den ausgewählten Wert vom Benutzer in der übergeordneten Komponente abrufen. Ich erhalte folgenden Fehler:

Uncaught TypeError: this.props.onSelectLanguage is not a function

ann mir jemand helfen, das Problem zu finde

P.S. Die untergeordnete Komponente erstellt ein Dropdown-Menü aus einer JSON-Datei. In der Dropdown-Liste müssen beide Elemente des JSON-Arrays nebeneinander angezeigt werden (z. B. "aaa, english" als erste Wahl!)

{  
   "languages":[  
      [  
         "aaa",
         "english"
      ],
      [  
         "aab",
         "swedish"
      ],
}

Antworten auf die Frage(8)

Ihre Antwort auf die Frage