反应路由器不匹配任何路线

react router did not match any routes

我正在尝试将页面重定向到另一个组件,但出现 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元素:

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

错误: 地址:

地址看起来是正确的,但当显然有一个组件分配给该地址时,它仍然会抛出此错误。 我一定是做错了什么。

您需要使用完整路径并且不需要尾部斜线,您还需要设置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

我通过在 surveydetail 之前添加 '/' 解决了这个问题。像这样。

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

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