我已经创建了Material UI ListItem
菜单,如下所示。
当我单击按钮时,它会将URL更新为http://localhost:3000/createIdea
,但该页面无法通过路由器加载。
如果您进入浏览器URL窗口并按 Enter ,则该页面不会加载。
DrawerMenu.js
具有路由:
<Route exact path='/createIdea' component={() => <CreateIdea />} />
然后App.js
-> drawerMenu.js*
-> tiledata.js
:
<ListItem button component={Link} to="/createIdea">
<ListItemIcon>
<WhatsHotIcon/>
</ListItemIcon>
<ListItemText primary="Create Idea"/>
</ListItem>
该如何解决?
答案 0 :(得分:3)
您可以尝试一下。它对我有用。
import { Link } from 'react-router-dom';
<ListItem button component={Link} to="/createIdea">
<ListItemIcon>
<WhatsHotIcon/>
</ListItemIcon>
<ListItemText primary="Create Idea"/>
</ListItem>
答案 1 :(得分:0)
从react-router-dom 5.2.0开始; @ material-ui / core 4.11.0;
import { useHistory } from 'react-router-dom';
const Foo = () => {
const history = useHistory();
return (
<ListItem onClick={() => history.push('/createIdea')}>
<ListItemIcon>
<WhatsHotIcon/>
</ListItemIcon>
<ListItemText primary="Create Idea"/>
</ListItem>
);
};
答案 2 :(得分:0)
尝试一下
<List disablePadding>
<ListItem button component={Link} to="/">
<ListItemText>Home</ListItemText>
</ListItem>
<ListItem button component={Link} to="/about">
<ListItemText>About Me</ListItemText>
</ListItem>
</List>
答案 3 :(得分:-1)
将Link
组件包装在ListItem
组件周围是否能够解决问题?像这样:
<Link to="/createIdea">
<ListItem>
<ListItemIcon>
<WhatsHotIcon/>
</ListItemIcon>
<ListItemText primary="Create Idea"/>
</ListItem>
</Link>