Use*_*Cat 12 javascript reactjs react-router
我正在尝试在侧边栏中创建链接列表。问题是,如果我使用
<ListItem button component='a' href="/persons">
Run Code Online (Sandbox Code Playgroud)
页面会重新加载,而不是像Link组件那样转到 url 。
<Link to='/persons' >
Run Code Online (Sandbox Code Playgroud)
我想知道,如何用 react-router Link 行为替换 Material UI listItem href 行为?这是我试图修复的列表:
// this breaks the design
<Link to='/persons' >
<ListItem button>
<ListItemIcon>
<Icon>people</Icon>
</ListItemIcon>
<ListItemText primary="Personas" />
</ListItem>
</Link>
// this reloads the page, i want to avoid
<ListItem button component='a' href="/persons">
<ListItemIcon>
<Icon>bar_chart</Icon>
</ListItemIcon>
<ListItemText primary="Reports" />
</ListItem>
Run Code Online (Sandbox Code Playgroud)
这是链接的样子:
ira*_*una 24
您可以将其Link用作 的组件ListItem并将其用作以下内容
<List>
<ListItem component={Link} to="/reports">
<ListItemIcon>
<Icon>bar_chart</Icon>
</ListItemIcon>
<ListItemText primary="Reports" />
</ListItem>
</List>
Run Code Online (Sandbox Code Playgroud)
对于 a <ListItem />propcomponent可以是 a string(对于 dom 元素)或 areact component本身。
https://material-ui.com/api/list-item/
您可以定义任何组件
const ListItemComponent = () => {
return <Link to="/test">Check</Link>
}
Run Code Online (Sandbox Code Playgroud)
将其作为componentprop 传递给<ListItem />.
<List>
<ListItem component={ListItemComponent}>
</ListItem>
</List>
Run Code Online (Sandbox Code Playgroud)
试试这个 https://stackblitz.com/edit/react-ogpmxx
| 归档时间: |
|
| 查看次数: |
4291 次 |
| 最近记录: |