Setelah mulai bekerja dengan React.js, sepertinya props
dimaksudkan untuk menjadi statis (diteruskan dari komponen induk), sementara state
perubahan didasarkan pada peristiwa. Namun, saya perhatikan dalam dokumen itu referensi componentWillReceiveProps
, yang secara khusus mencakup contoh ini:
componentWillReceiveProps: function(nextProps) {
this.setState({
likesIncreasing: nextProps.likeCount > this.props.likeCount
});
}
Ini tampaknya menyiratkan bahwa properti BISA berubah pada komponen berdasarkan perbandingan nextProps
ke this.props
. Apa yang saya lewatkan? Bagaimana alat peraga berubah, atau apakah saya salah tentang di mana ini dipanggil?
sumber
componentWillReceiveProps
sudah ketinggalan zaman sekarang: dan digantikan oleh kombinasi darigetDerivedStateFromProps
dancomponentDidUpdate
.ATRIBUT
NEGARA
Contoh yang baik sudah disediakan oleh Valéry.
sumber
Alat peraga dapat berubah ketika induk komponen membuat komponen lagi dengan properti yang berbeda. Saya pikir ini sebagian besar merupakan optimasi sehingga tidak ada komponen baru yang perlu dipakai.
sumber
Trik untuk memperbarui alat peraga jika array:
sumber
Banyak yang telah berubah dengan kait, misalnya
componentWillReceiveProps
berubah menjadiuseEffect
+useRef
( seperti yang ditunjukkan dalam jawaban SO lainnya ), tetapi Alat Peraga masih Read-Only , jadi hanya metode penelepon yang harus memperbaruinya.sumber
jika Anda menggunakan
recompose
, gunakanmapProps
untuk membuat alat peraga baru yang berasal dari alat peraga yang masukEdit misalnya:
sumber