首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >React functional HOC component with Hooks,复制静态方法

React functional HOC component with Hooks,复制静态方法
EN

Stack Overflow用户
提问于 2019-04-29 02:25:21
回答 1查看 1.6K关注 0票数 0

我有一个使用钩子的功能性HOC组件。

我使用的是Wix原生导航,而我的大部分屏幕都在使用静态方法。

但在使用HOC时,静态方法不会被复制:

但是,当您将HOC应用于组件时,原始组件是用容器组件包装的。这意味着新组件没有原始组件的任何静态方法。

我正在尝试使用hoistNonReactStatic,但没有成功:

下面是我的即兴演讲:

代码语言:javascript
复制
const WithOfflineAlertContainer = WrappedComponent => (props) => {
  const isConnected = useNetInfo();
  return hoistNonReactStatics(
    <Fragment>
      <WrappedComponent {...props} />
      {!isConnected && <OfflineAlert />}
    </Fragment>, WrappedComponent,
  );
};

下面是如何在wix-react-native-navigation中使用hoc

代码语言:javascript
复制
  Navigation.registerComponentWithRedux(screens.gallery, () => WithOfflineAlert(Gallery), Provider, store);

但它似乎不起作用,因为我没有看到wix native navigationstatic options()应用的样式

EN

回答 1

Stack Overflow用户

发布于 2019-04-29 04:38:13

所以我设法使用另一篇文章中的这个answer让它工作。

以下是工作版本

代码语言:javascript
复制
const WithOfflineAlert = (Component) => {
  const WrappedComponent = (props) => {
    const isConnected = useNetInfo();
    return (
      <Fragment>
        <Component {...props} />
        {!isConnected && <OfflineAlert />}
      </Fragment>
    );
  };
  hoistNonReactStatics(WrappedComponent, Component);
  return WrappedComponent;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55893293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档