Я пытаюсь использовать 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 - это не способ реакции. Я пытаюсь использовать стороннюю библиотеку холста и хочу добавить некоторые из их инструментов в отдельные компоненты, поэтому мне нужны прослушиватели событий, поэтому мне нужны методы жизненного цикла. Позже он может пойти другим путем, но я хочу попробовать это.
Документы говорят, что это возможно!
Пересылка ссылок не ограничивается компонентами DOM. Вы также можете пересылать ссылки на экземпляры компонентов класса.
Но затем они продолжают использовать HOC вместо классов.
connect
или marterial-uiwithStyles
?