Привет, ребята, я пытаюсь сделать макет администратора, используя реагировать, но проблема заключается в добавлении маршрутов:
компонент приложения:
function App() {
return (
<div className="App">
<Admin dashboard={DashBoard}>
<Resources view={Cp} name="hello" icon={"DashBoard"} />
</Admin>
</div>
);
}
здесь у меня есть компонент администратора с реквизитами панели мониторинга как компонент и дочерние ресурсы: Компонент Admin:
const Admin = ({ children, dashboard }) => {
const dispatch = useDispatch();
useEffect(() => {
if (dashboard)
dispatch(addRoute({ path: "/", name: "dashboard", icon: "Dashboard" }));
}, []);
return (
<Router history={history}>
<div className="admin">
<SideBar />
<div className="content">
<Switch>
<Route path="/" exact component={dashboard} />
</Switch>
</div>
</div>
</Router>
);
};
Я использую Redux, поэтому здесь, когда администратор выполняет рендеринг, будет отправлено действие по добавлению маршрута в хранилище Redx, которое будет использоваться для отображения ссылок на боковой панели. но проблема в том, что дочерние элементы отображаются внутри коммутатора, это дочерние ресурсы:
const Resources = ({ icon, name, view, edit }) => {
const dispatch = useDispatch();
useEffect(() => {
dispatch(addRoute({ name, icon, path: `/${name}` }));
}, []);
return (
<div>
{view && <Route path={`/${name}`} component={view} />}
{edit && <Route path={`/${name}/edit`} component={edit} />}
</div>
);
};
эти ресурсы принимают реквизиты и отображают маршруты в зависимости от этого действия реквизиты + диспетчеризация для добавления маршрутов в хранилище. но проблема в том, что когда я перехожу к "/", отправка ресурсов не запускается, а маршруты доступны. и когда я перемещаюсь для маршрутизации ресурсов с URL-адреса браузера, он отправляет действие ресурсов до того, как администратор отправит действие, и это приведет к тому, что боковая панель не будет правильно отображать ссылки.
, пожалуйста, помогите решить проблему и решить проблему. спасибо.