私は反応ルータで動作するはずのセマンティックUI(反応)メニューリストを取得しようとしています。つまり、react router
のLink
コンポーネントを使用したいということです。
これを使用すると...
<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>
SUIRの augmentation を使用する必要があります。
<Menu.Item as={ Link } name='profile' to='profile'>
<Icon name='user' />
My profile
</Menu.Item>
代わりにbrowserHistory.Push
を使用してください。 Link
の代替としてreact-router
によっても提供されましたが、マークアップはありません:
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>
name
propsから/profile
を取得するには、次のように行を変更します。
<Menu.Item name="profile" onClick={(event, itemProps) => this.redirect(itemProps.name)}
その場合、<Menu onItemClick={...} >
は<Menu.item onClick={...} >
よりも優れています