Я использую HO C (компонент макета здесь), чтобы обернуть мой пользовательский компонент. Компонент Layout содержит заголовок и боковую панель. При нажатии на ссылку будет выполнен рендеринг соответствующего компонента. Но моя проблема в том, что с каждым маршрутом мой HO C отображается, поскольку целевой компонент маршрута заключен в этот HO C. Как я могу сделать мой HO C рендером только один раз. Пример фрагмента.
Приложение. js
<Router>
<Switch>
<PrivateRoute path="routeOne" component={RouteOne}/>
<PrivateRoute path="routeTwo" component={RouteTwo}/>
</Switch>
</Router>
RouteOne. js
import React from "react"
import Layout from "/hoc"
const RouteOne = () =>{
return({..jsx..})
}
export default Layout(RouteOne)
Макет. js
const Layout(WrappedComponent) => {
const userDetails = useSelector(state);
useEffect(()=>{
dispatch(fetchSomething())
},[dispatch])
return ( <HeaderNavbarUILayout header={<Header
username={userDetails.userName}>
content={<WrappedComponent/>);
}
export default Layout
Я хочу визуализировать свой компонент HO C только один раз. Как я могу это сделать?