React Router路径呈现多个组件

萨什米特·萨加尔

我定义了以下路线:

   <Route exact path="/dashboard/main" render={() => <Dashboard toggleModal={this.toggleModal} saveMatchForSidebarMenu={this.saveMatchForSidebarMenu} />} />
   <Route exact path="/dashboard/channels/:id/:channelName/collaborators" render={(props) => <Collaborators {...props} saveMatchForSidebarMenu={this.saveMatchForSidebarMenu}/>} />
   <Route exact path="/dashboard/channels/:id/:channelName/:type" render={(props) => <VideoStats {...props} saveMatchForSidebarMenu={this.saveMatchForSidebarMenu}/>} />
   <Route path="/dashboard/edit_video" render={(props) => <EditVideo {...props} saveMatchForSidebarMenu={this.saveMatchForSidebarMenu}/>} />
   <Route path="/dashboard/account" render={(props) => <Account {...props} saveMatchForSidebarMenu={this.saveMatchForSidebarMenu}/> } />
   <Route path="/dashboard/socialMedia" render={(props) => <SocialMedia {...props} saveMatchForSidebarMenu={this.saveMatchForSidebarMenu}/>} />
   <Route path="/dashboard/media-library" render={(props) => <MediaLibrary {...props} saveMatchForSidebarMenu={this.saveMatchForSidebarMenu}/>} />
   <Route path="/dashboard/shares" render={(props) => <Shares {...props} saveMatchForSidebarMenu={this.saveMatchForSidebarMenu}/>} />

我正在第二和第三条路线。现在,如果path是:http://localhost:3000/dashboard/channels/5ab09ca6d224c413423c2819/abc/LIVE_WEB <VideoState/>组件渲染

但是,如果路径是:

http://localhost:3000/dashboard/channels/5ab09ca6d224c413423c2819/abc/collaborators

然后Both<Collaborators/><VideoState/>component渲染。我已经尝试了删除和添加确切道具的所有可能方法。喜欢一次只给一个,然后从所有人中删除它。什么都行不通。我如何避免<VideoState/>上述第二条路径的组件渲染。

阿格尼

添加一个Switch它将呈现与path唯一匹配的第一条路线

 <Route exact path="/dashboard/main" render={() => <Dashboard toggleModal={this.toggleModal} saveMatchForSidebarMenu={this.saveMatchForSidebarMenu} />} />
 <Switch>
   <Route path="/dashboard/channels/:id/:channelName/collaborators" render={(props) => <Collaborators {...props} saveMatchForSidebarMenu={this.saveMatchForSidebarMenu}/>} />
   <Route path="/dashboard/channels/:id/:channelName/:type" render={(props) => <VideoStats {...props} saveMatchForSidebarMenu={this.saveMatchForSidebarMenu}/>} />
 </Switch>
 <Route path="/dashboard/edit_video" render={(props) => <EditVideo {...props} saveMatchForSidebarMenu={this.saveMatchForSidebarMenu}/>} />
 <Route path="/dashboard/account" render={(props) => <Account {...props} saveMatchForSidebarMenu={this.saveMatchForSidebarMenu}/> } />
 <Route path="/dashboard/socialMedia" render={(props) => <SocialMedia {...props} saveMatchForSidebarMenu={this.saveMatchForSidebarMenu}/>} />
 <Route path="/dashboard/media-library" render={(props) => <MediaLibrary {...props} saveMatchForSidebarMenu={this.saveMatchForSidebarMenu}/>} />
 <Route path="/dashboard/shares" render={(props) => <Shares {...props} saveMatchForSidebarMenu={this.saveMatchForSidebarMenu}/>} />

https://reacttraining.com/react-router/core/api/Switch

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

React Router未在路径上呈现组件,返回空白页面并带有正确的路径

如何在React Router的多个私有页面上呈现这些组件?

React Router始终呈现NotFound默认组件

URL 更改但组件未呈现 - React Router

刷新后,React Router呈现组件

渲染具有多个路径的相同组件React Router Dom

React Router-路径组件未渲染

react-router-dom:如何设置路由,以使其在两个路径中的任何一个路径上呈现组件?

ReactJS-未呈现react-router嵌套路径

React Router在单击Array项时未呈现组件

React-Router:组件未呈现但 URL 更改

React Router未呈现组件,称返回语句丢失

React Router V4-组件未在<Switch>下呈现

react-router-dom在路由更改时不呈现组件

react-router-dom v4不呈现组件

React-Router无法正确呈现样式化组件样式

尽管匹配精确路由,React Router 组件仍不呈现

React Router呈现无效组件,然后呈现有效组件

使用路由器在 React JS 中呈现的多个组件

React SPA-显示加载屏幕,直到呈现多个组件

React Router v4呈现多个路由

无法使用react-router访问URL路径组件

react-router:根据匹配的路径显示/隐藏组件

React Router 不会在子组件的路由上呈现新组件

React测试库,动态导入和React Router DOM始终呈现未找到的组件

React Router中有多个可能的确切路径?

React Router 的多个参数更改 url 但不是组件

未找到 redux 存储并且无法为 React 中的特定路径呈现组件

REACT - 呈现组件时出错