Я использую antd: ^ 3.5.4
У меня есть меню, которое содержит элементы для управления пользователями. Когда вы не вошли в систему, в меню есть пункт меню со ссылкой на страницу входа в систему. Когда вы вошли в систему, в меню есть подменю с несколькими ссылками, включая выход из системы.
Я просто провожу простой тест на подключенном моем пользователе, чтобы отобразить ссылку или подменю. У меня хорошо работает, когда все в одном файле
<Menu mode="horizontal">
<Menu.Item key="home">
<Link to={RoutesNames.HOMEPAGE}>Home</Link>
</Menu.Item>
{this.props.currentUserIsSignedIn ? (
<SubMenu key="usermenu" title={<Avatar>A</Avatar>}>
<Menu.Item key="info">{this.props.currentUserEmail}</Menu.Item>
<Menu.Item key="logout">
<Link onClick={this.props.signOutUser}>Log out</Link>
</Menu.Item>
</SubMenu>
) : (
<Menu.Item key="login">
<Link to={RoutesNames.LOGIN}>Signin / Register</Link>
</Menu.Item>
)}
</Menu>
Проблемы начинаются, когда я пытаюсь создать компонентное меню пользователя, которое обрабатывает эту логику. Что я хочу в конце, так это
<Menu mode="horizontal">
<Menu.Item key="home">
<Link to={RoutesNames.HOMEPAGE}>Home</Link>
</Menu.Item>
<UserMenu user={this.props.currentUser}/>
</Menu>
Я создаю свой подкомпонент UserMenu.
Сначала у меня такая ошибка:
Uncaught TypeError: Cannot read property 'isRootMenu' of undefined
at ProxyComponent.render (SubMenu.js:274)
Итак, я обновил свой компонент UserMenu, чтобы определить parentMenu.
<SubMenu parentMenu={this.props.menu}
и установите родительский элемент как parentMenu в моем файле заголовка
<Menu
mode="horizontal"
ref={el => this.menu = el}
>
<UserMenu menu={this.menu} user={this.props.currentUser} />
</Menu>
С этим реквизитом меню отображается подменю, но я все еще получаю сообщение об ошибке при наведении указателя мыши и наведении указателя мыши на подменю
Uncaught TypeError: onItemHover is not a function
at onTitleMouseEnter (SubMenu.js:454)
Для этого я совершенно не знаю, что делать.
Спасибо за вашу помощь