我制作了一个 HOC,用于在加载组件时显示加载模式。
export const withLoading = (Component) => {
return function HOCLoading(props) {
const [isLoading, setIsLoading] = useState(false)
return (
<>
<Component
{...props}
isLoading={isLoading}
setIsLoading={setIsLoading}
/>
<Loading isLoading={isLoading} />
</>
)
}
}
我用它作为
export default withLoading(MyComponent)
它工作正常,直到我意识到navigationOptions
停止工作,这很明显,因为withLoading
返回了一个没有的组件navigationOptions
,所以我的解决方法是。
const LoadingMyComponent = withLoading(MyComponent)
然后设置navigationOptions
为LoadingMyComponent
。
但这看起来很糟糕,并不比拥有一个用于加载和渲染的状态更容易Loading
。
有没有办法将这个 HOC 转换成一个反应钩子或者做一些我不会弄乱的事情,navigationOptions
并且还封装了Loading
组件和逻辑。