Tôi đang cố gắng sử dụng React.nticRef, nhưng vấp phải cách làm cho nó hoạt động trong một thành phần dựa trên lớp (không phải HOC).
Các ví dụ tài liệu sử dụng các phần tử và thành phần chức năng, thậm chí gói các lớp trong các hàm cho các thành phần bậc cao hơn.
Vì vậy, bắt đầu với một cái gì đó như thế này trong ref.js
tệp của họ :
const TextInput = React.forwardRef(
(props, ref) => (<input type="text" placeholder="Hello World" ref={ref} />)
);
và thay vào đó định nghĩa nó như sau:
class TextInput extends React.Component {
render() {
let { props, ref } = React.forwardRef((props, ref) => ({ props, ref }));
return <input type="text" placeholder="Hello World" ref={ref} />;
}
}
hoặc là
class TextInput extends React.Component {
render() {
return (
React.forwardRef((props, ref) => (<input type="text" placeholder="Hello World" ref={ref} />))
);
}
}
chỉ hoạt động: /
Ngoài ra, tôi biết tôi biết, ref không phải là cách phản ứng. Tôi đang cố gắng sử dụng thư viện canvas của bên thứ ba và muốn thêm một số công cụ của họ trong các thành phần riêng biệt, vì vậy tôi cần trình xử lý sự kiện, vì vậy tôi cần các phương pháp vòng đời. Nó có thể đi một con đường khác sau này, nhưng tôi muốn thử điều này.
Các tài liệu nói rằng nó có thể!
Chuyển tiếp tham chiếu không giới hạn đối với các thành phần DOM. Bạn cũng có thể chuyển tiếp các tham chiếu đến các cá thể thành phần của lớp.
Nhưng sau đó họ tiếp tục sử dụng HOC thay vì chỉ các lớp.
connect
hoặc marterial-ui'swithStyles
?