Я использую HOC (здесь компонент макета), чтобы обернуть свой пользовательский компонент. Компонент макета содержит заголовок и боковую панель. При нажатии на ссылку будет отображаться соответствующий компонент. Но моя проблема в том, что с каждым маршрутом мой HOC отображается, поскольку целевой компонент маршрута завернут в этот HOC. Как я могу сделать рендеринг HOC только один раз. Фрагмент примера.
App.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)
Layout.js
const Layout(WrappedComponent) => {
const userDetails = useSelector(state);
useEffect(()=>{
dispatch(fetchSomething())
},[dispatch])
return ( <HeaderNavbarUILayout header={<Header
username={userDetails.userName}>
content={<WrappedComponent/>);
}
export default Layout
Я хочу визуализировать свой компонент HOC только один раз. Как я могу это сделать?
const Layout = WrappedComponent => React.memo(() => {...})
? - person Marouane Fazouane   schedule 21.06.2020