Estoy tratando de usar React.forwardRef, pero me tropiezo con cómo hacer que funcione en un componente basado en clases (no HOC).
Los ejemplos de documentos usan elementos y componentes funcionales, incluso envolviendo clases en funciones para componentes de orden superior.
Entonces, comenzando con algo como esto en su ref.js
archivo:
const TextInput = React.forwardRef(
(props, ref) => (<input type="text" placeholder="Hello World" ref={ref} />)
);
y en su lugar definirlo como algo como esto:
class TextInput extends React.Component {
render() {
let { props, ref } = React.forwardRef((props, ref) => ({ props, ref }));
return <input type="text" placeholder="Hello World" ref={ref} />;
}
}
o
class TextInput extends React.Component {
render() {
return (
React.forwardRef((props, ref) => (<input type="text" placeholder="Hello World" ref={ref} />))
);
}
}
solo funciona: /
Además, sé que sé, los árbitros no son la forma de reaccionar. Estoy tratando de usar una biblioteca de lienzo de terceros y me gustaría agregar algunas de sus herramientas en componentes separados, por lo que necesito detectores de eventos, por lo que necesito métodos de ciclo de vida. Puede que más adelante tome una ruta diferente, pero quiero probar esto.
¡Los doctores dicen que es posible!
El reenvío de referencias no se limita a los componentes DOM. También puede reenviar referencias a instancias de componentes de clase.
de la nota en esta sección.
Pero luego pasan a usar HOC en lugar de solo clases.
connect
o marterial-ui'swithStyles
?