有关this和this等同一主题的问题很多,但我无法解决问题。
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 时,它会中断,并在控制台中提供以下内容。
我认为嵌套的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 。