Поместите ссылку в StyledMenuItem в React
Я хотел поставить Link
так что я могу перейти на другие страницы в React. Почему это не навигация
КОД
<StyledMenu
anchorEl={settingsMenu}
keepMounted
open={Boolean(settingsMenu)}
onClose={handleClose}>
<StyledMenuItem>
<ListItemIcon component={Link} to={`/accounts`}>
<PersonIcon />
</ListItemIcon>
<ListItemText primary="accounts" />
</StyledMenuItem>
<StyledMenuItem component={Link} to={`/orders`}>
<ListItemIcon>
<OrderIcon />
</ListItemIcon>
<ListItemText primary="Orders" />
</StyledMenuItem>
</StyledMenu>;
1 ответ
Решение
Предполагая <StyledMenuItem>
это ваш пользовательский компонент, вы можете легко сделать это, обернув весь JSX в component
опора Для других переданных ему реквизитов (например,to
), просто деструктурируйте их и поместите в качестве опор для новой оболочки. component
.
import React, { Component } from "react";
export default class StyledMenuItem extends Component {
render() {
// simply checks to see if a component prop is passed
let WrapperComponent = this.props.component;
if (WrapperComponent === undefined) {
WrapperComponent = React.Fragment;
}
return (
<WrapperComponent {...this.props}>
{this.props.children}
</WrapperComponent>
);
}
}
Это каким-то образом имитирует поведение Material UI MenuItem, о котором я ранее писал в своем комментарии.