我的react-admin v3运行得很顺利,但有一点我很苦恼。
我设置了一个自定义用户菜单组件,如下图所示,但handleClick事件根本没有被调用--控制台中没有任何内容,也没有打开窗口。相反,浏览器导航到了计费界面
render() {
const { crudGetOne, profile, ...props } = this.props;
const handleClick = (e) => {
e.preventDefault();
e.stopPropagation();
console.log("In usermenu handleClick");
console.log("Opening window to {process.env.REACT_APP_BILLING_URL}");
window.open("{process.env.REACT_APP_BILLING_URL}", '_blank');
}
return (
<UserMenu {...props}>
<MenuItemLink
to="/profile"
primaryText="Profile"
leftIcon={<AccountCircleIcon />}
/>
<MenuItemLink
to="/billing"
primaryText="Billing"
leftIcon={<PaymentIcon />}
onClick={handleClick}
component={Link}
>Billing</MenuItemLink>
</UserMenu>
);
}
如果有谁能帮忙,或者提出其他方法让外部链接从menuitem打开,那就太好了,它已经困扰我好久了。而且令人惊讶的是,我找不到其他任何人问同样的问题。
祝贺你,安迪
这个例子在文档中看起来不一样。
const CustomUserMenu = (props) => {
return (
<UserMenu {...props}>
<MenuItemLink
to="/billing"
primaryText="Billing"
leftIcon={<PaymentIcon />}
onClick={props.onClick} // close the menu on click!
/>
</UserMenu>
)
}
这有点让人困惑,但onClick事件是在UserMenu中重新定义的。
...(cloneElement(menuItem, { onClick: handleClose }))
https:/github.commarmelabreact-adminblobmasterpackagesra-ui-materialuisrclayoutUserMenu.js。