Rumah > hujung hadapan web > tutorial js > Mengapa React Saya SetState Tidak Mengemas Kini Negeri Saya Serta-merta?

Mengapa React Saya SetState Tidak Mengemas Kini Negeri Saya Serta-merta?

Mary-Kate Olsen
Lepaskan: 2024-12-25 12:02:14
asal
502 orang telah melayarinya

Why Doesn't My React setState Update My State Immediately?

React setState Mengekalkan Keadaan Lapuk

Masalah

Dalam aplikasi React ini, pembolehubah keadaan (dealersOverallTotal) tidak dikemas kini dengan betul. Isu ini berterusan walaupun selepas menggunakan setTimeout untuk menangguhkan panggilan setState. Walaupun pernyataan console.log mengesahkan bahawa jumlah pembolehubah memegang nilai yang betul, dealersOverallTotal kekal tidak berubah.

Penyelesaian

Puncanya terletak pada sifat tak segerak kaedah setState. Apabila console.log digunakan untuk memeriksa keadaan serta-merta selepas memanggil setState, ia mendapatkan semula nilai keadaan lama. Untuk mengakses keadaan yang dikemas kini, fungsi panggil balik yang disediakan untuk setState boleh digunakan:

this.setState({ dealersOverallTotal: total }, () => {
  console.log(this.state.dealersOverallTotal, 'dealersOverallTotal1');
});
Salin selepas log masuk

Dalam panggilan balik, keadaan yang dikemas kini dijamin tersedia, memastikan pengelogan nilai keadaan yang tepat. Dengan mengikuti amalan ini, pembangun dengan yakin boleh bergantung pada keadaan yang dikemas kini apabila mengaksesnya selepas panggilan setState.

Atas ialah kandungan terperinci Mengapa React Saya SetState Tidak Mengemas Kini Negeri Saya Serta-merta?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan