ฉันพยายามใช้ React.forwardRef แต่สะดุดวิธีทำให้มันทำงานในองค์ประกอบตามคลาส (ไม่ใช่ HOC)
ตัวอย่างเอกสารใช้องค์ประกอบและส่วนประกอบที่ใช้งานได้แม้กระทั่งการตัดคลาสในฟังก์ชันสำหรับส่วนประกอบลำดับที่สูงกว่า
เริ่มต้นด้วยสิ่งนี้ในref.js
ไฟล์:
const TextInput = React.forwardRef(
(props, ref) => (<input type="text" placeholder="Hello World" ref={ref} />)
);
และแทนที่จะกำหนดเป็นดังนี้:
class TextInput extends React.Component {
render() {
let { props, ref } = React.forwardRef((props, ref) => ({ props, ref }));
return <input type="text" placeholder="Hello World" ref={ref} />;
}
}
หรือ
class TextInput extends React.Component {
render() {
return (
React.forwardRef((props, ref) => (<input type="text" placeholder="Hello World" ref={ref} />))
);
}
}
ใช้งานได้เท่านั้น: /
นอกจากนี้ฉันรู้ว่าฉันรู้ว่า ref ไม่ใช่วิธีตอบสนอง ฉันกำลังพยายามใช้ไลบรารีแคนวาสของบุคคลที่สามและต้องการเพิ่มเครื่องมือบางอย่างในส่วนประกอบแยกต่างหากดังนั้นฉันต้องการตัวฟังเหตุการณ์ดังนั้นฉันจึงต้องการวิธีวงจรชีวิต มันอาจไปเส้นทางอื่นในภายหลัง แต่ฉันอยากลองทำเช่นนี้
เอกสารบอกว่าเป็นไปได้!
การส่งต่อ Ref ไม่ จำกัด เฉพาะคอมโพเนนต์ DOM คุณสามารถส่งต่อการอ้างอิงไปยังอินสแตนซ์ส่วนประกอบของคลาสได้เช่นกัน
แต่แล้วพวกเขาก็ใช้ HOCs แทนการเรียน
connect
หรือ Marterial-UI เป็นwithStyles
?