0

我想重定向頁面到不同的組件,我得到did not match any route錯誤。反應路由器不匹配任何路由

陣營路由器版本:

"react-router": "2.4.0", 
"react-router-redux": "4.0.4", 

Webpack.config文件:輸出:

output: { 
    path: __dirname + '/dist', 
    publicPath: '/SurveyMaintenance/', 
    filename: 'bundle.js' 
    } 

應用程序啓動:

import {Router, browserHistory} from 'react-router'; 
import routes from './routes'; 

    <Provider store={store}> 
     <Router history={browserHistory} routes={routes} /> 
    </Provider>, 
    document.getElementById('app') 
); 

我Route.js文件:

<Route path="SurveyMaintenance/" component={App}> 
     <IndexRoute component={SurveyMaintenancePage}/> 
     <Route path="surveydetail/:id" component={EditSurveyPage} /> 
    </Route> 

鏈接元素:

<Link to={`surveydetail/${survey.Id}`} onClick={editSurvey}></Link> 

錯誤:enter image description here 地址: enter image description here

地址看起來是正確的,但它仍然清楚地時沒有分配給該地址的組件引發此錯誤。 我一定在做錯事。

回答

0

我通過在surveydetail之前添加'/'來解決此問題。喜歡這個。

<Route path="SurveyMaintenance" component={App}> 
      <IndexRoute component={SurveyMaintenancePage}/> 
      <Route path="/surveydetail/:id" component={EditSurveyPage} /> 
     </Route> 

<Link to={`surveydetail/${survey.Id}`} onClick={editSurvey}></Link> 
0

您需要使用完整路徑和你不需要結尾的斜線,您還需要設置publicPath: '/'

<Route path="SurveyMaintenance" component={App}> 
      <IndexRoute component={SurveyMaintenancePage}/> 
      <Route path="surveydetail/:id" component={EditSurveyPage} /> 
     </Route> 

-

<Link to={`/SurveyMaintenance/surveydetail/${survey.Id}`} onClick={editSurvey}></Link> 

,如果你想使用publicPath,你需要爲您的歷史記錄添加一個基本名字 How to configure a basename in React Router 3.x

+0

我只是想你什麼建議和地址時: 的http://本地主機:3000/SurveyMaintenance/SurveyMaintenance/surveydetail/449 – vineeth

+0

請參閱更新的答案,你需要設置基本路徑: '/' 或添加基名到反應路由器 – Kossel

+0

等待它的工作,但網址是錯誤的 – vineeth