Saya membuat langkah pertama saya di ReactJS dan mencoba memahami komunikasi antara orang tua dan anak-anak. Saya membuat formulir, jadi saya memiliki komponen untuk bidang penataan. Dan juga saya memiliki komponen induk yang mencakup bidang dan memeriksanya. Contoh:
var LoginField = React.createClass({
render: function() {
return (
<MyField icon="user_icon" placeholder="Nickname" />
);
},
check: function () {
console.log ("aakmslkanslkc");
}
})
var MyField = React.createClass({
render: function() {
...
},
handleChange: function(event) {
//call parent!
}
})
Apakah ada cara untuk melakukannya? Dan apakah logika saya baik di "dunia" rejinya? Terima kasih atas waktunya.
sumber
<Child value={this.state.value} onChange={this.changeHandler.bind(this)} />
React.createClass
yang otomatis mengikat semua metode komponen. Jika saya menggunakan kelas Bereaksi es6 maka Anda harus mengikatnya (kecuali jika Anda mengikat secara otomatis di konstruktor yang mana banyak orang lakukan hari ini untuk menyiasati ini).bind
mengembalikan fungsi baru, jadi pada dasarnya Anda membuat fungsi baru setiap kali Anda menjalankan render. Ini mungkin baik-baik saja, tetapi jika Anda mengikat dalam konstruktor maka Anda hanya melakukan ini sekali per komponen metode di instantiation daripada setiap render. Ini nit-picking ... tapi secara teknis lebih bagus, kurasa!Anda dapat menggunakan metode induk apa pun. Untuk ini, Anda harus mengirim metode ini dari orang tua Anda kepada anak Anda seperti nilai sederhana. Dan Anda dapat menggunakan banyak metode dari orang tua sekaligus. Sebagai contoh:
Dan gunakan ke Anak seperti ini (untuk tindakan apa pun atau ke metode anak apa pun):
sumber
this.props
di sana panggilan balik menjadiundefined
.this
)2019 Pembaruan dengan reaksi 16+ dan ES6
Posting ini karena
React.createClass
sudah tidak digunakan lagi dari versi reaksi 16 dan Javascript ES6 yang baru akan memberi Anda lebih banyak manfaat.Induk
Anak
Anak stateless yang disederhanakan sebagai ES6 konstan
sumber
Lewati metode dari
Parent
komponenprop
keChild
komponen Anda . yaitu:sumber
Menggunakan Function || komponen tanpa kewarganegaraan
Komponen Induk
Komponen Anak
sumber
Bereaksi 16+
Komponen Anak
Komponen Induk
sumber