Bagaimana untuk menghantar data dari komponen anak ke komponen induk dalam ReactJS?
P粉441076405
2023-08-27 13:34:07
<p>Saya cuba menghantar data daripada komponen anak kepada komponen induknya seperti ini: </p>
<pre class="brush:php;toolbar:false;">const ParentComponent = React.createClass({
getInitialState() {
kembali {
bahasa: '',
};
},
handleLanguageCode: function(langValue) {
this.setState({bahasa: langValue});
},
render() {
kembali (
<div className="col-sm-9" >
<SelectLanguage onSelectLanguage={this.handleLanguage}/>
</div>
);
});</pre>
<p>Ini ialah subkomponen: </p>
<pre class="brush:php;toolbar:false;">export const SelectLanguage = React.createClass({
getInitialState: function(){
kembali{
Kod terpilih: '',
Bahasa yang dipilih: '',
};
},
handleLangChange: fungsi (e) {
var lang = this.state.selectedLanguage;
var code = this.state.selectedCode;
this.props.onSelectLanguage({selectedLanguage: lang});
this.props.onSelectLanguage({selectedCode: code});
},
render() {
var json = memerlukan("json!../languages.json");
var jsonArray = json.languages;
kembali (
<div>
<DropdownList ref='dropdown'
data={jsonArray}
value={this.state.selectedLanguage}
caseSensitive={false}
minLength={3}
penapis = 'mengandungi'
onChange={this.handleLangChange} />
</div>
);
}
});</pre>
<p>Apa yang saya perlukan ialah mendapatkan nilai yang dipilih pengguna dalam komponen induk. Saya mendapat ralat ini: </p>
<pre class="brush:php;toolbar:false;">Uncaught TypeError: this.props.onSelectLanguage bukan fungsi</pre>
<p>Bolehkah sesiapa membantu saya memikirkan masalahnya? </p>
<p>P.S. subkomponen sedang mencipta lungsur turun daripada fail json, saya memerlukan lungsur turun untuk memaparkan dua elemen tatasusunan json bersebelahan antara satu sama lain (cth: "aaa,english" sebagai pilihan!)</p>
<pre class="brush:php;toolbar:false;">{
"bahasa":[
[
"aaa",
"bahasa Inggeris"
],
[
"aab",
"sweden"
],
}</pre>
<p><br /></p>
Hantar data daripada komponen anak kepada komponen induk
Dalam komponen induk:
Dalam komponen kanak-kanak:
Ini sepatutnya berkesan. Apabila menghantar kembali prop, anda menghantarnya sebagai objek dan bukannya menghantarnya sebagai nilai atau menggunakannya sebagai objek dalam komponen induk. Kedua, anda perlu memformat objek json untuk mengandungi pasangan nilai nama dan menggunakan atribut
的DropdownList
valueField
和textField
Jawapan ringkas
Ibu bapa:
Kanak-kanak:
Butiran:
Editor:
Memandangkan React.createClass telah ditamatkan pada v16.0, adalah lebih baik untuk mencipta komponen React dengan melanjutkan
React.Component
. Menghantar data daripada komponen anak kepada komponen induk menggunakan sintaks ini akan kelihatan seperti iniIbu bapa
Kanak-kanak
Gunakan sintaks
createClass
yang OP gunakan dalam jawapannya Ibu bapaKanak-kanak
JSON: