Dalam kod anda, anda menggunakan kaedah setState untuk mengemas kini keadaan komponen anda. Walau bagaimanapun, anda tidak menjangkakan nilai keadaan yang dikemas kini hanya selepas memanggil setState. Ini kerana setState ialah kaedah tak segerak dan keadaan tidak bermutasi serta-merta.
setState ialah kaedah tak segerak kerana ia perlu melaksanakan beberapa tugas sebelum mengemas kini keadaan. Tugas ini mungkin termasuk memanggil kaedah pemaparan dan mengemas kini UI. Jika setState adalah segerak, tugasan ini perlu diselesaikan sebelum sebarang kod lain boleh dilaksanakan, yang boleh membawa kepada isu prestasi.
Untuk menyemak nilai keadaan yang dikemas kini hanya selepas memanggil setState, anda boleh menggunakan kaedah panggil balik. Kaedah panggil balik ialah fungsi yang dilaksanakan selepas setState menyelesaikan tugasnya. Berikut ialah contoh:
this.setState({ barClubLounge: event.target.checked }, () => { console.log('updated state value', this.state.barClubLounge) })
Dalam contoh ini, kaedah panggil balik akan dilaksanakan selepas keadaan dikemas kini dan akan log nilai kemas kini barClubLounge ke konsol.
< h3>Mengapa setState tidak segerak?
setState ialah tak segerak untuk meningkatkan prestasi. Jika setState adalah segerak, penyemak imbas perlu menunggu keadaan dikemas kini sebelum memaparkan UI. Ini boleh membawa kepada isu prestasi, terutamanya untuk komponen kompleks yang memerlukan pengiraan yang meluas.
Dengan menjadikan setState tak segerak, penyemak imbas boleh terus memaparkan UI semasa keadaan sedang dikemas kini. Ini menghasilkan pengalaman pengguna yang lebih lancar dan responsif.
Atas ialah kandungan terperinci Mengapa `setState` Tidak Mengemas kini Keadaan Komponen React Dengan Segera?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!