React: getDerivedStateFromProps dijalankan setelah setState # 13015

Dibuat pada 24 Des 2019  ·  4Komentar  ·  Sumber: facebook/react

Idealnya getDerivedStateFromProps tidak boleh dipanggil karena setState komponen saat ini. Tapi itu berperilaku begitu. Ada yang bisa menjelaskan?

Tidak dapat menemukan solusi di # 13015

Question

Semua 4 komentar

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 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.

Terima kasih

@bvaughn , Terima kasih atas jawabannya

Apakah halaman ini membantu?
0 / 5 - 0 peringkat