嵌套的react-router url在使用webpack-dev-server重新加载时中断

时间:2016-11-11 03:15:12

标签: reactjs webpack react-router webpack-dev-server

有关thisthis等同一主题的问题很多,但我无法解决问题。

react-app在没有重新加载的情况下运行良好,但是当在嵌套的react-router URL上重新加载或手动刷新时,它会中断。

这是我的路线:

ReactDOM.render(
  <Provider store={store}>
    <Router history={history}>
      <Route path='/' component={App}>
        <IndexRoute component={GoogleLoginComponent} />
        <Route path='home' component={HomeComponent} onEnter={authRequired.bind(this, store)}>
        </Route>
        <Route path='register' component={RegisterComponent} onEnter={authRequired.bind(this, store)}>
        </Route>
        <Route path='eventCreated/eventId=:eventId' component={EventShareComponent}>
        </Route>
        <Route path='event/eventId=:eventId' component={EventPageComponent}>
        </Route>
      </Route>
    </Router>
  </Provider>,
  document.getElementById('app')
);

当我重新加载 http://localhost:3000/home http://localhost:3000/register 时,该应用会顺利重新加载。

但是当我尝试重新加载 http://localhost:3000/eventCreated/eventId=1234 http://localhost:3000/event/eventId=1234 时,它会中断,并在控制台中提供以下内容。

web console error

我认为嵌套的Url不是由web-pack识别的,我已经更改了server.js文件,如下所示:

new WebpackDevServer(webpack(config), {
    publicPath: config.output.publicPath,
    hot: true,
    historyApiFallback: {
      index: 'index.html',
      rewrites: [
        { from: /\/event/, to: 'index.html'}
      ]
    }
}).listen(PORT, function(err, result) {
    if (err) console.log(err);
    console.log('Listening at port '+ PORT);
});

我已经重写了嵌套的网址以重定向到index.html,但仍然无法弄清楚错误是什么。我已经尝试将 historyApiFallback 改为 true

0 个答案:

没有答案