Я пытаюсь использовать 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} />))
);
}
}
только работает:/
Кроме того, я знаю, я знаю, реф не способ реакции. Я пытаюсь использовать стороннюю библиотеку холстов и хотел бы добавить некоторые из их инструментов в отдельные компоненты, поэтому мне нужны прослушиватели событий, поэтому мне нужны методы жизненного цикла. Это может пойти другим путем позже, но я хочу попробовать это.
Документы говорят, что это возможно!
Пересылка ссылок не ограничивается компонентами DOM. Вы также можете пересылать ссылки на экземпляры компонентов класса.
Но затем они продолжают использовать HOC вместо просто классов.