我有一个使用钩子的功能性HOC组件。
我使用的是Wix原生导航,而我的大部分屏幕都在使用静态方法。
但在使用HOC时,静态方法不会被复制:
但是,当您将HOC应用于组件时,原始组件是用容器组件包装的。这意味着新组件没有原始组件的任何静态方法。
我正在尝试使用hoistNonReactStatic
,但没有成功:
下面是我的即兴演讲:
const WithOfflineAlertContainer = WrappedComponent => (props) => {
const isConnected = useNetInfo();
return hoistNonReactStatics(
<Fragment>
<WrappedComponent {...props} />
{!isConnected && <OfflineAlert />}
</Fragment>, WrappedComponent,
);
};
下面是如何在wix-react-native-navigation
中使用hoc
:
Navigation.registerComponentWithRedux(screens.gallery, () => WithOfflineAlert(Gallery), Provider, store);
但它似乎不起作用,因为我没有看到wix native navigation的static options()
应用的样式
发布于 2019-04-29 04:38:13
所以我设法使用另一篇文章中的这个answer让它工作。
以下是工作版本
const WithOfflineAlert = (Component) => {
const WrappedComponent = (props) => {
const isConnected = useNetInfo();
return (
<Fragment>
<Component {...props} />
{!isConnected && <OfflineAlert />}
</Fragment>
);
};
hoistNonReactStatics(WrappedComponent, Component);
return WrappedComponent;
}
https://stackoverflow.com/questions/55893293
复制相似问题