2015-09-11 221 views
1

我實際上正在使用Fuxible和Reactjs開發一個應用程序,並且遇到問題。流量路由器參數路由

事實上,我需要在./configs/routes.js中創建一個不在頂部菜單欄中的路線。

我需要這條路線可以通過參數來訪問:id。

這裏有一個標準的路線,我使用:

detail: { 
     path: '/product/1/details', 
     method: 'get', 
     page: 'productDetail', 
     title: 'product detail', 
     handler: require('../components/product/ProductDetail') 
    } 

我需要的是讓這樣的:

detail: { 
      path: '/product/:id/details', 
      method: 'get', 
      page: 'productDetail', 
      title: 'product detail', 
      handler: require('../components/product/ProductDetail') 
     } 

,但沒有將其添加到他的頂部導航欄中的菜單(即是自動的生成通俗易懂)

其實,我有這樣一個事實:我在URL中發現了一個奇怪的錯誤,像這樣:

NavLink沒有HREF或無法解決的routeName '細節' 創建

我如何進行?

回答

1

Fluxible根本不控制導航。生成器附帶一個「導航」組件,默認情況下使用路由配置來生成導航,但您可以自由修改該組件以執行任何您想要的操作。我們通常喜歡將菜單配置與路由配置分開。例如,您可以查看我們的Fluxible.io源代碼:https://github.com/yahoo/fluxible.io/blob/master/configs/menu.js

+0

我已經看過你有什麼鏈接,並且我已經理解了頂部導航欄由nav組件處理的事實。但是,這並沒有幫助我做出我需要的工作。 – mfrachet

0

要快速修復,請爲每個路徑添加isSection屬性,然後過濾導航組件中的鏈接。

//configs/routes.js 
about: { 
    path: '/about', 
    method: 'get', 
    page: 'about', 
    title: 'About', 
    handler: require('../components/About'), 
    isSection: true 
}, 
play: { 
    path: '/play/:id', 
    method: 'get', 
    page: 'play', 
    title: 'Play', 
    handler: require('../components/About'), 
    isSection: false 
} 

//components/Nav.js 
if (link.isSection){ 
      if (selected && selected.name === name) { 
       className = 'pure-menu-selected'; 
      } 
      return (
       <li className={className} key={link.path}> 
        <NavLink routeName={link.page} activeStyle={{backgroundColor: '#eee'}}>{link.title}</NavLink> 
       </li> 
      ); 
     }