<Route path="/profile/:companyId/:companyName" component={Profile} onEnter={(nextState, replace, next) => {getLoginStatus(next);}} > <IndexRoute component={Circle} /> <Route path="/profile/circle/:companyId/:companyName" component={Circle} /> <Route path="/profile/community/:companyId/:companyName" component={Community} onEnter={this.verifyIsPay} /> <Route path="/profile/district/:companyId/:companyName" component={District} onEnter={this.verifyIsPay} /> <Route path="/profile/industry/:companyId/:companyName" component={Industry} onEnter={this.verifyIsPay} /> <Route path="/profile/shareholding/:companyId/:companyName" component={Shareholding} onEnter={this.verifyIsPay} /> <Route path="/profile/event/:companyId/:companyName" component={Event} onEnter={this.verifyIsPay} /> <Route path="/profile/statistics/:companyId/:companyName" component={Statistics} onEnter={this.verifyIsPay} /> </Route>
如代码所示,父路由要接收参数,子路由也要接收参数。
这种情况下,子路由就需要写完整的路径:/profile/community/:companyId/:companyName,而不是简写的:community/:companyId/:companyName。
完整的路径才能正常匹配,而简写方式会将 community 匹配给 /profile/:companyId/:companyName 的 :companyId,从而找不到路由。