我正在尝试使用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} />))
);
}
}
只能工作:/
另外,我知道我知道,裁判不是反应方式。我正在尝试使用第三方画布库,并希望将它们的一些工具添加到单独的组件中,因此我需要事件侦听器,因此需要生命周期方法。稍后可能会走不同的路线,但是我想尝试一下。
文档说这是可能的!
引用转发不限于DOM组件。您也可以将引用转发到类组件实例。
但是随后他们继续使用HOC,而不仅仅是类。
您需要使用其他道具名称来将引用转发到类。
innerRef
在许多库中常用。