Rumah > hujung hadapan web > tutorial js > Mengapa Fungsi React onClick Saya Menyala pada Render?

Mengapa Fungsi React onClick Saya Menyala pada Render?

Mary-Kate Olsen
Lepaskan: 2024-11-08 05:45:01
asal
637 orang telah melayarinya

Why Does My React onClick Function Fire on Render?

React onClick Function Firing on Render

Apabila mencipta komponen React yang menghasilkan senarai objek, adalah perkara biasa untuk menghantar kedua-dua objek dan fungsi untuk memadamkannya sebagai prop. Semasa menggunakan .map() untuk mengulangi objek adalah standard, ia boleh menyebabkan fungsi onClick menyala lebih awal semasa pemaparan.

Dalam kod yang disediakan, isu ini berpunca daripada fakta bahawa removeTaskFunction sedang dipanggil terus dalam pengendali acara onClick. Ini bermakna fungsi itu dilaksanakan sebaik sahaja komponen dipaparkan, bukan apabila butang diklik.

Penyelesaian

Untuk menyelesaikan masalah ini, fungsi harus diluluskan sebagai fungsi anak panah kepada onClick, memastikan ia tidak digunakan sebelum waktunya. Baris yang dibetulkan sepatutnya kelihatan seperti:

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

Fungsi anak panah, diperkenalkan dalam ES6, tangguhkan pelaksanaan sehingga fungsi dipanggil. Dalam React 0.13.3 atau lebih baru, fungsi anak panah disokong sepenuhnya. Dengan menggunakan fungsi anak panah, pengendali onClick hanya akan mencetuskan apabila butang benar-benar diklik, seperti yang dimaksudkan.

Atas ialah kandungan terperinci Mengapa Fungsi React onClick Saya Menyala pada Render?. 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