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コンポーネントに限定されません。refをクラスコンポーネントインスタンスに転送することもできます。
しかし、クラスだけでなくHOCを使用し続けます。
connect
やmarterial-uiなどのHOCでラップしている場合はどうしますwithStyles
か?