⊗jsrtPmHkURD 13 of 47 menu

Penggunaan Hook useRef untuk DOM dalam React

Dalam salah satu pelajaran sebelumnya, kami ada menyebutkan, bahawa ref paling kerap digunakan untuk mengakses elemen DOM.

Ref akan datang untuk menyelamatkan apabila anda, sebagai contoh, perlu memfokus pada elemen, membuat skrol atau mengira saiz dan posisinya, atau mungkin menggunakan beberapa kaedah atau sifatnya, kerana untuk perkara seperti itu dalam React tiada kaedah terbina dalam.

Mari kita lihat contoh dengan input, bagaimana ia dilakukan. Mari buat komponen dengan input dan butang:

return ( <div> <input /> <button>focus</button> </div> );

Sebagai permulaan, import ke dalam komponen useRef:

import { useRef } from 'react';

Dan buat ref ref dalam komponen. Mulakan nilainya dengan null:

const ref = useRef(null);

Letakkan pengendali klik pada butang:

<button onClick={handleClick}>focus</button>

Untuk mempunyai akses kepada input, catat ref kami ref dalam atribut ref input. Dengan cara ini, apabila React mencipta nod DOM untuk input ini, ia akan meletakkan rujukan kepadanya dalam ref.current dan kami akan dapat menggunakan kaedah input:

<input ref={ref} />

Dan akhirnya, tambah fungsi pengendalian klik, supaya apabila butang diklik, fokus diberikan kepada input. Sekarang kami boleh melakukannya melalui ref, yang mengandungi rujukan kepada input kami, dengan mengakses kaedahnya focus:

function handleClick() { ref.current.focus(); }

Cuba tekan butang dan pastikan bahawa fokus diberikan kepada input.

Ambil kod komponen App, yang kami tulis dalam pelajaran ini dan buat supaya apabila butang diklik, selain memberi fokus pada input, medan input juga dibersihkan. Gunakan untuk ini sifat value input.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak