Reactjs react路由器安装了错误的组件
我正在写一个React on Rails(5版)应用程序,遇到了一个问题。当我访问路径Reactjs react路由器安装了错误的组件,reactjs,react-router,Reactjs,React Router,我正在写一个React on Rails(5版)应用程序,遇到了一个问题。当我访问路径accounts/:account\u id/letters/new时,React Router正在装载EmailShowComponent,而我希望它装载EmailSendComponent 这是我的app.js文件: <Router history={browserHistory}> <Route path="/accounts/:id" component={AccountShowC
accounts/:account\u id/letters/new
时,React Router正在装载EmailShowComponent
,而我希望它装载EmailSendComponent
这是我的app.js文件:
<Router history={browserHistory}>
<Route path="/accounts/:id" component={AccountShowContainer} />
<Route path="/accounts/:account_id/letters/:id" component={EmailShowComponent} />
<Route path="/accounts/:account_id/letters/new" component={EmailSendComponent} />
</Router>
这是我的main.js文件:
import 'babel-polyfill';
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
$(function(){
ReactDOM.render(
<App />,
document.getElementById('app')
)
});
导入“babel polyfill”;
从“React”导入React;
从“react dom”导入react dom;
从“./App”导入应用程序;
$(函数(){
ReactDOM.render(
,
document.getElementById('app')
)
});
我在为路由器生成路径的每个相关html页面中都放置了“
标记
你知道是什么原因造成的吗?问题是路径
/accounts/:account\u id/letters/new
也满足路径/accounts/:account\u id/letters/:id
。区别在于id
变成了“新的”
要解决此问题,只需交换路由的顺序:
<Router history={browserHistory}>
<Route path="/accounts/:id" component={AccountShowContainer} />
<Route path="/accounts/:account_id/letters/new" component={EmailSendComponent} />
<Route path="/accounts/:account_id/letters/:id" component={EmailShowComponent} />
</Router>
你的路线的顺序;没有说明
new
不是有效的ID。
<Route path="/comments" ... />
<Redirect from="/comments" ... />