setState
akan menghasilkan re-render
komponen. Untuk setiap render
komponen, getDerivedStateFromProps
harus dipanggil. Ini adalah cara kerja getDerivedStateFromProps
.
Apa yang harus Anda pertimbangkan adalah bagaimana mengembalikan keadaan parsial untuk digabungkan.
Tanpa kode contoh, saya tidak mengerti apa yang Anda katakan atau tanyakan.
Diharapkan bahwa getDerivedStateFromProps
akan dipanggil setelah setState
, karena status yang dikembalikan oleh getDerivedStateFromProps
didasarkan pada props
dan state
sebelumnya state
. Jadi jika status telah berubah, (dengan panggilan setState
), mungkin saja status turunannya juga telah berubah (karena ini adalah kombinasi dari props
dan state
) .
Kami sebelumnya tidak memanggilnya lagi jika props
tidak berubah, tetapi perilaku itu menyebabkan masalah dan jadi kami mengubahnya (memperbaikinya) di 16.4 seperti yang disebutkan oleh posting blog ini:
https://reactjs.org/blog/2018/05/23/react-v-16-4.html#bugfix -for-getderivedstatefromprops
Jika Anda ingin membagikan beberapa kode dan mengajukan pertanyaan khusus tentang mengapa metode ini dijalankan, salah satu dari kami dapat melihatnya. Untuk saat ini saya akan menganggap pertanyaan Anda telah dijawab: senyum:
setState
akan menghasilkanre-render
komponen. Untuk setiaprender
komponen,getDerivedStateFromProps
harus dipanggil. Ini adalah cara kerjagetDerivedStateFromProps
.Apa yang harus Anda pertimbangkan adalah bagaimana mengembalikan keadaan parsial untuk digabungkan.
Terima kasih
@bvaughn , Terima kasih atas jawabannya