Saat Anda secara langsung memperbarui negara, itu tidak mengubah ini. menyatakan segera. Sebaliknya, itu menciptakan transisi keadaan yang tertunda, dan mengaksesnya setelah memanggil metode ini hanya akan mengembalikan nilai sekarang. Anda akan kehilangan kendali negara bagian di semua komponen.
- Mengapa kita tidak bisa mengubah keadaan secara langsung?
- Mengapa kita tidak memperbarui status langsung di React?
- Mengapa Objek Negara tidak disarankan untuk bermutasi secara langsung?
- Apa yang terjadi jika kita mengubah keadaan langsung dalam bereaksi?
Mengapa kita tidak bisa mengubah keadaan secara langsung?
Jadi, saat Anda bermutasi keadaan secara langsung dan menelepon setState () dengan objek kosong. Keadaan sebelumnya akan tercemar dengan mutasi Anda. Karena itu, perbandingan dangkal dan penggabungan dua negara akan terganggu atau tidak akan terjadi, karena Anda hanya akan memiliki satu negara bagian sekarang.
Mengapa kita tidak memperbarui status langsung di React?
Pembaruan keadaan dalam React tidak sinkron; Ketika pembaruan diminta, tidak ada jaminan bahwa pembaruan akan segera dilakukan. Fungsi pembaruan enqueue berubah pada keadaan komponen, tetapi bereaksi dapat menunda perubahan, memperbarui beberapa komponen dalam satu pass tunggal.
Mengapa Objek Negara tidak disarankan untuk bermutasi secara langsung?
Memodifikasi keadaan secara langsung akan mengganggu proses ini. Akibatnya komponen akan berperilaku tak terduga.
Apa yang terjadi jika kita mengubah keadaan langsung dalam bereaksi?
Keadaan komponen dikelola secara internal dengan bereaksi. Memperbarui keadaan komponen secara langsung dapat memiliki konsekuensi yang tidak diinginkan yang sulit untuk debug. Jika negara diperbarui secara langsung seperti pada contoh di atas, komponen tidak akan rerender karena negara dibandingkan dengan dangkal.