Реагировать на функциональный компонент HOC с помощью хуков, копируя статические методы - PullRequest
0 голосов
/ 28 апреля 2019

У меня есть функциональный компонент HOC, который использует хуки.

Я использую собственную навигацию Wix, и большая часть моего экрана использует статические методы.

Но статические методы не копируются при использованииHOC:

Однако при применении HOC к компоненту исходный компонент оборачивается компонентом контейнера.Это означает, что новый компонент не имеет никаких статических методов исходного компонента.

Я пытаюсь использовать hoistNonReactStatic, но безуспешно:

Вот мой HOC:

const WithOfflineAlertContainer = WrappedComponent => (props) => {
  const isConnected = useNetInfo();
  return hoistNonReactStatics(
    <Fragment>
      <WrappedComponent {...props} />
      {!isConnected && <OfflineAlert />}
    </Fragment>, WrappedComponent,
  );
};

вот как использовать hoc с wix-react-native-navigation:

  Navigation.registerComponentWithRedux(screens.gallery, () => WithOfflineAlert(Gallery), Provider, store);

Но, похоже, это не работает, так как я не вижу стилей, примененных из static options() из WIX родная навигация

1 Ответ

1 голос
/ 28 апреля 2019

Так что мне удалось заставить его работать, используя этот ответ из другого поста.

Вот рабочая версия

const WithOfflineAlert = (Component) => {
  const WrappedComponent = (props) => {
    const isConnected = useNetInfo();
    return (
      <Fragment>
        <Component {...props} />
        {!isConnected && <OfflineAlert />}
      </Fragment>
    );
  };
  hoistNonReactStatics(WrappedComponent, Component);
  return WrappedComponent;
}
...