组件无法在带有参数的新页面上呈现

时间:2018-01-23 08:18:09

标签: reactjs react-router react-router-v4 react-router-dom

我有两个组件,我有这个问题,ChampionLists和SelectedChamp。 SelectedChamp不依赖于ChampionLists数据我没有传递任何数据因为在SelectedChamp内部我根据参数获取新数据。

我的ChampionLists组件是我使用map渲染一些数据的地方,每个数据都包含在Link中,导航到champions / select /:param

<Link to={`${match.url}/select/${champ.name}`}> Some data infos </Link>

目前在ChampionLists中我有另一个匹配url并接受参数的Route,这将呈现SelectedChamp组件

<Route path={`${match.url}/select/:champName`} exact render={(props) => <SelectedChamp {...props}/>}/>

但是,如果我点击列出的任何数据,它不会加载到新页面,它只会在ChampionLists中呈现SelectedChamp组件,如何将其加载到新页面?

我的index.js

ReactDOM.render(
<BrowserRouter>    
    <App />
</BrowserRouter>, document.getElementById('root'));

我的app.js

<Switch>
  <Route path="/" exact render={(props) => <FrontPage toggleGlobalHeader={this.hideGlobalHeader} {...props}/>}/>
  <Route path="/login" render={(props) => <Login user={user} {...props}/>}/>
  <Route path="/champions" render={(props) => <ChampionsList {...props}/>}/>
  <PrivateRoute path="/community" user={user} component={DashBoard}/>
  <Route path="*" render={(props) => <RouteNotFound toggleGlobalHeader={this.hideGlobalHeader} {...props}/>} />
</Switch>

我尝试在应用内添加路线,但它没有加载组件。

....
<Route path="/champions" render={(props) => <ChampionsList {...props}/>}/>
<Route path="/champions/select/:champName" render={(props) => <SelectedChamp {...props}/>}/>

1 个答案:

答案 0 :(得分:0)

在为冠军定义路线时,你错过了“确切”。下面的代码对我有用。

{{1}}