React-admin MenuItemLink onClick не работает - PullRequest
0 голосов
/ 27 мая 2020

У меня есть response-admin v3, работающий очень плавно, но я борюсь с одним моментом.

У меня есть настраиваемый компонент пользовательского меню, как показано ниже, но событие handleClick не ' т вообще не звонил - в консоли ничего нет, окна не открываются. Вместо этого браузер переходит в / billing

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>
        );
    }

Если кто-нибудь может помочь или предложить другой способ открыть внешнюю ссылку из пункта меню, это будет fantasti c, меня это беспокоило целую вечность . И что удивительно, я не могу найти никого, кто бы задавал тот же вопрос.

С уважением, Энди

1 Ответ

0 голосов
/ 28 мая 2020

В документации пример выглядит иначе:

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.com/marmelab/react-admin/blob/master/packages/ra-ui-materialui/src/layout/UserMenu.js

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...