首页 > 解决方案 > 暴露自己的命令句柄同时转发 ref 的 React HOC 如何检测被包装的组件是否可以获取 ref?

问题描述

我在 React 中制作了一个高阶组件,并且我在这个组件中构造了一个新的 ref,因为我想公开一些命令式操作。但是,如果可用,我还想公开包装组件的 ref,因此我决定将包装的 ref 分配给我的新命令句柄的原型。这会产生一个问题,因为我的组件的用户可能想要访问我的句柄,同时还包装了一个无法接收 ref 的功能组件。我的 HOC 如何检测它包装的组件是否可以引用?换句话说,如果被包装的组件是一个forwardRef组件还是一个类组件?

我想补充一点,我没有使用useImperativeHandle,因为每当被包装的组件调用我传递给它的 ref 时,我必须更改句柄,而不是每当 react 调用命令式句柄回调时,而是我做了一个小钩子它将函数引用和对象引用转换为我可以调用的函数。

标签: javascriptreactjshigher-order-componentsreact-forwardref

解决方案


推荐阅读