Я хотел бы иметь меню веб-сайта, но после того, как я перенаправлен им на правильную страницу, я хочу, чтобы меню исчезло. Мне удается реализовать это с использованием response-router-dom и useLocation, как описано ниже, но я честно считаю, что есть лучший способ сделать это, так как мне не нравится использовать "/" в качестве константы ... у любого есть лучшая идея?
import React from "react";
import styled from "styled-components";
import {get} from 'lodash'
import {
BrowserRouter as Router,
Switch,
Route,
Link,
useLocation
} from "react-router-dom";
const MenuWrapper = (props) => {
let location = useLocation()
if (get(location, 'pathname') === '/') {
return (<div className={props.className}>{props.children}</div>)
} else {
return null
}
}
const Page = styled.div`
`
const MenuBox = styled(MenuWrapper)`
`;
const MenuButton = styled(Link)`
`;
export default function Home() {
return (
<Page>
<Router>
<MenuBox>
<MenuButton to={'/someURL'}>play against computer</MenuButton>
<MenuButton to={'/home'}>Home</MenuButton>
</MenuBox>
<Switch>
<Route path={'/someURL'}><PlayRandomMoveEngine/></Route>
<Route path={'/home'}>
<div/>
</Route>
</Switch>
</Router>
</Page>
);
}