Mengapa Fungsi onClick Mencetuskan Render in React dan Cara Mencegahnya?

DDD
Lepaskan: 2024-11-07 19:29:03
asal
257 orang telah melayarinya

Why Does an onClick Function Trigger on Render in React and How to Prevent It?

Mengapa Fungsi onClick Menyala pada Render bertindak balas dan Bagaimana untuk Menghalangnya?

Apabila menghantar senarai objek dan fungsi padam kepada komponen kanak-kanak dan menggunakan fungsi .map() untuk memaparkan objek, didapati bahawa fungsi onClick butang mencetuskan semasa pemaparan, yang tidak sepatutnya berlaku.

Untuk menyelesaikan isu ini dan menghalang fungsi onClick daripada menyala pada paparan:

Penjelasan:

Dalam kod asal, pengendali acara onClick dipanggil terus dan bukannya dihantar sebagai rujukan kepada fungsi. Ini bermakna fungsi itu dilaksanakan apabila komponen dipaparkan, bukannya apabila butang diklik.

Penyelesaian:

Untuk membetulkannya, gunakan fungsi anak panah seperti jadi:

<button type="submit" onClick={() => { this.props.removeTaskFunction(todo) }}>Submit</button>
Salin selepas log masuk

Fungsi anak panah, yang diperkenalkan dalam ES6, membolehkan anda mentakrifkan fungsi tanpa nama tanpa perlu mengisytiharkan kata kunci fungsi secara eksplisit. Dalam kes ini, fungsi anak panah tidak dipanggil sehingga butang diklik, menghalang fungsi onClick daripada menyala semasa render.

Atas ialah kandungan terperinci Mengapa Fungsi onClick Mencetuskan Render in React dan Cara Mencegahnya?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!