J'essaie d'utiliser React.forwardRef, mais je trébuche sur la façon de le faire fonctionner dans un composant basé sur une classe (pas HOC).
Les exemples de documentation utilisent des éléments et des composants fonctionnels, et même des classes d'encapsulation dans des fonctions pour des composants d'ordre supérieur.
Donc, en commençant par quelque chose comme ça dans leur ref.js
fichier:
const TextInput = React.forwardRef(
(props, ref) => (<input type="text" placeholder="Hello World" ref={ref} />)
);
et définissez-le plutôt comme quelque chose comme ceci:
class TextInput extends React.Component {
render() {
let { props, ref } = React.forwardRef((props, ref) => ({ props, ref }));
return <input type="text" placeholder="Hello World" ref={ref} />;
}
}
ou
class TextInput extends React.Component {
render() {
return (
React.forwardRef((props, ref) => (<input type="text" placeholder="Hello World" ref={ref} />))
);
}
}
fonctionne uniquement: /
De plus, je sais que je sais, les arbitres ne sont pas la manière de réagir. J'essaie d'utiliser une bibliothèque de canevas tierce et j'aimerais ajouter certains de leurs outils dans des composants séparés, j'ai donc besoin d'écouteurs d'événements, j'ai donc besoin de méthodes de cycle de vie. Cela peut emprunter une autre voie plus tard, mais je veux essayer ceci.
La documentation dit que c'est possible!
Le transfert de référence n'est pas limité aux composants DOM. Vous pouvez également transmettre des références aux instances de composant de classe.
à partir de la note de cette section.
Mais ensuite, ils utilisent des HOC au lieu de simples classes.
connect
ou marterial-uiwithStyles
?