Semantic UI (React): как использовать компоненты ссылок в меню.Элемент списка

Я пытаюсь получить семантический список меню ui (react), который должен работать с маршрутизатором react, что означает, что я хотел бы использовать Link компонент react router

если я использую это...

<Menu.Item name='profile'>
    <Icon name='user' />
    My profile
</Menu.Item>

...это дает мне результат:

<a class="item">
    <i aria-hidden="true" class="user icon"></i>
    My profile
</a>

но я хотел бы сделать что-то вроде

<Link to='profile'>
    <i aria-hidden="true" class="user icon"></i>
    My profile
</Link>

это не работает, так как синтаксис неправильный:

<Menu.Item name='profile' as={ <Link to='profile' /> }>
    <Icon name='user' />
    My profile
</Menu.Item>

2 ответов


вам нужно воспользоваться СУИР-х увеличение:

<Menu.Item as={ Link } name='profile' to='profile'>
  <Icon name='user' />
  My profile
</Menu.Item>

использовать browserHistory.push вместо этого ; это было предусмотрено и react-router в качестве альтернативы Link но не разметки :

import {browserHistory} from 'react-router';

redirect(to) {
    browserHistory.push({
       pathname: to
    });
} 
//......
<Menu.Item name="profile" onClick={this.redirect('/profile')}
    <Icon name='user' />
    My profile
</Menu.Item>

если вы хотите получить /profile С name реквизит, измените строку на:

<Menu.Item name="profile" onClick={(event, itemProps) => this.redirect(itemProps.name)}

и если это так , <Menu onItemClick={...} > лучше, чем <Menu.item onClick={...} >