Reactjs react路由器安装了错误的组件

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

我正在写一个React on Rails(5版)应用程序,遇到了一个问题。当我访问路径
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" ... />