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.
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'); });
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!