react ref无法获取被高阶组件包装的原始组件问题

问题描述:

  • react无法通过ref获取被高阶组件包装的原始组件
  • 通过ref调用被dva connect包裹的组件报错

我们在平时使用ref获取一个组件的引用后,就可以直接通过ref调用组件自身的函数,但是对于高阶组件,使用ref调用原始组件的函数就会报错。

简介:

高阶组件(HOC)是 React 中用于复用组件逻辑的一种高级技巧。HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性而形成的设计模式。

简而言之:高阶组件是参数为组件,返回值为新组件的函数。

const EnhancedComponent = higherOrderComponent(WrappedComponent);

组件是将 props 转换为 UI,而高阶组件是将组件转换为另一个组件。

HOC 在 React 的第三方库中很常见,例如 Redux 的 connect 和 Relay 的 createFragmentContainer

 


虽然高阶组件的约定是将所有 props 传递给被包装组件,但这对于 refs 并不适用。那是因为 ref 实际上并不是一个 prop - 就像 key 一样,它是由 R

你可能感兴趣的:(web全栈行走轨迹,react,ref,高阶组件,dva,connect)