我正在尝试使用 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,而不仅仅是类。