Ich versuche, React.forwardRef zu verwenden, stolpere aber darüber, wie es in einer klassenbasierten Komponente (nicht HOC) funktioniert.
In den Dokumentbeispielen werden Elemente und Funktionskomponenten verwendet, und es werden sogar Klassen in Funktionen für Komponenten höherer Ordnung eingeschlossen.
Also, beginnend mit so etwas wie dies in ihrer ref.jsDatei:
const TextInput = React.forwardRef(
(props, ref) => (<input type="text" placeholder="Hello World" ref={ref} />)
);
und stattdessen so etwas definieren:
class TextInput extends React.Component {
render() {
let { props, ref } = React.forwardRef((props, ref) => ({ props, ref }));
return <input type="text" placeholder="Hello World" ref={ref} />;
}
}
oder
class TextInput extends React.Component {
render() {
return (
React.forwardRef((props, ref) => (<input type="text" placeholder="Hello World" ref={ref} />))
);
}
}
funktioniert nur: /
Ich weiß auch, dass Refs nicht die richtige Reaktion sind. Ich versuche, eine Canvas-Bibliothek eines Drittanbieters zu verwenden, und möchte einige ihrer Tools in separaten Komponenten hinzufügen. Daher benötige ich Ereignis-Listener und daher Lebenszyklusmethoden. Es kann später einen anderen Weg gehen, aber ich möchte dies versuchen.
Die Dokumente sagen, dass es möglich ist!
Die Weiterleitung von Refs ist nicht auf DOM-Komponenten beschränkt. Sie können Refs auch an Klassenkomponenteninstanzen weiterleiten.
aus dem Hinweis in diesem Abschnitt.
Aber dann verwenden sie HOCs anstatt nur Klassen.
connectoder Marterial-UI eingewickelt habenwithStyles?