Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jsrtPmHkURD 13 of 47 menu
◀ ▶

การใช้งาน Hook useRef กับ DOM ใน React

ในบทเรียนก่อนหน้านี้เราเคยกล่าวว่า Refs มักถูกใช้สำหรับการเข้าถึงองค์ประกอบ DOM มากที่สุด

Refs จะเป็นตัวช่วยเมื่อคุณต้องการ เช่น โฟกัสไปที่องค์ประกอบ, ทำการเลื่อน (scroll) หรือคำนวณขนาดและตำแหน่งของมัน หรืออาจจะใช้เมธอดหรือคุณสมบัติบางอย่างของมัน เพราะใน React ไม่มีเมธอดในตัวสำหรับสิ่งเหล่านั้น

ลองดูตัวอย่างกับอินพุทกัน ว่ามันทำอย่างไร สร้างคอมโพเนนต์ที่มีอินพุทและปุ่ม:

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

เริ่มต้น นำเข้า useRef ไปยังคอมโพเนนต์:

import { useRef } from 'react';

และสร้าง Ref ในคอมโพเนนต์ กำหนดค่าเริ่มต้นเป็น null:

const ref = useRef(null);

เพิ่ม Handler สำหรับการคลิกที่ปุ่ม:

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

เพื่อให้สามารถเข้าถึงอินพุทได้ ให้เขียน Ref ของเราไปที่แอตทริบิวต์ ref ของอินพุท ดังนั้น เมื่อ React สร้าง DOM node สำหรับอินพุทนี้ มันจะวางลิงก์ไปที่มันไว้ใน ref.current และเราสามารถใช้เมธอดของอินพุทได้:

<input ref={ref} />

และสุดท้าย เพิ่มฟังก์ชันจัดการการคลิก เพื่อที่เมื่อคลิกปุ่ม อินพุทจะได้รับโฟกัส ตอนนี้เราสามารถทำสิ่งนี้ผ่าน Ref ซึ่งเก็บลิงก์ไปยังอินพุทของเรา โดยเรียกใช้เมธอด focus ของมัน:

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

ลองกดปุ่มและตรวจสอบดูว่าอินพุทได้รับโฟกัสจริง

นำโค้ดคอมโพเนนต์ App ที่เราเขียนในบทเรียนนี้ไป และทำให้เมื่อคลิกปุ่ม นอกจากจะโฟกัสไปที่อินพุทแล้ว ยังทำการล้างข้อมูลในช่องป้อนข้อมูลด้วย ใช้คุณสมบัติ value ของอินพุทเพื่อการนี้

← →
↑
ไทย▼
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ