2017-09-06 24 views
0

私はreact-router-domを使用しています。私は2つのURLを持っているので、URLが一致すると赤いリンクを作る必要があります/ =>/map反応ルータ-domを使用してNavLinkをアクティブに設定する方法

現在のコードでは、別のページにルーティングできますが、ブラウザでURLが変更されたときにNavLinkが強調表示されていません。任意のアイデアを修正する方法。

import React from 'react' 
import { NavLink, Route } from 'react-router-dom' 

const Navigation = ({ onClick, id, title, tooltip, url }) => { 
    return (
    <div onClick={onClick} alt={tooltip}> 
     { <Route path={url} exact children={({ match }) => (

     <div style={match ? {color: 'red'} : {}}> 
      {match ? '> ' : ''}<NavLink to={url}>{title}</NavLink> 
     </div> 
)} />} 
    </div > 
) 
} 

export default Navigation 

const Root = ({ store }) => (
     <Provider store={store}> 
     <Router> 
      <Switch> 
      <Route exact path='/' component={Forecast} /> 
      <Route exact path='/map' component={Map} /> 
      </Switch> 
     </Router> 
     </Provider> 
    ) 
+0

をはい正しい、私はアクティブリンクをマークしたいですURLをマップします。ありがとう – Radex

答えて

0

あなたのアプローチはちょっと混乱します。しかし、ナビゲートされているアクティブリンクを強調表示したい場合は、アクティブクラス名をNavLinkに追加するだけです。この

<NavLink to={url} exact activeClassName="activeLink" style=>{title}</NavLink> 

ような何かアクティブリンクのためのCSS:

.activeLink { 
    color: red; 
} 

* 反応-ルータ-DOMを: "^ 4.1.2"

+0

私はこの方法を試しましたが、URLは正しくマークされていません – Radex

+0

ルータファイルを追加していますが、何が間違っているのか教えてください。 – Radex

関連する問題