首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从反应性路由器排除路径-路由器<路由器/>

从反应性路由器排除路径-路由器<路由器/>
EN

Stack Overflow用户
提问于 2019-07-09 21:49:25
回答 1查看 7K关注 0票数 0

我在试着建立一个反应路由器应用程序。我有/parties,所有各方的列表,然后是/parties/:id,它给了我一个派对的详细页面和/parties/create,在那里我有一个创建派对的表单。

现在,我试图让我的主要资源总是在我的屏幕的左边,我的子资源总是在我的屏幕的右边。

我就是这样设置的:

代码语言:javascript
复制
        return <div>
      <div>
        <nav>
          <h1>Gamevote</h1>
          <AuthWidget authService={this.authService}/>
        </nav>
        <div class="content cnt" ref={this.content}>
          <this.PrivateRoute path="/" exact component={() => <Redirect to="/parties"/>} />
          <Route path="/register" exact component={() => <Register/>} />
          <Route path="/login" exact component={() => <Login authService={this.authService}/>} />
          <this.PrivateRoute path="/parties/:selectedParty?" component={this.AutowiredPartyList} />
        </div>
        <div class="big-content cnt" ref={this.bigContent}>
            <this.PrivateRoute path="/party/create" partyService={this.partyService} exact component={() => <this.AutowiredCreateParty/>}/>
            <this.PrivateRoute path="/parties/:party" exact component={PartyView}/>
         </div>
         <this.PrivateRoute path="/logout" exact component={this.Logout}/>
      </div>
    </div>
  }

但是现在当我去/parties/create的时候,会出现一个创建派对的表单和一个id派对的派对细节。

是否有办法将/parties/create排除在匹配/parties/:id之外?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-09 21:59:39

如果希望/parties/create/parties/:id同时更改顺序,请更改顺序:

Path=“/各方/创建”(第一) path="/parties/:id“(最后)

如果另一条路径与/派对/:有什么关系?在它进入此路径之前存在。

这是因为"/parties/:id"匹配/parties/#####之后的任何内容,请注意,您必须添加Switch组件,因此只能呈现一条路径。

代码语言:javascript
复制
import React from "react";
import ReactDOM from "react-dom";
import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom";

function Index() {
  return <h2>Home</h2>;
}

function About() {
  return <h2>About create</h2>;
}

function AboutId() {
  return <h2>About with ID</h2>;
}

function Users() {
  return <h2>Users</h2>;
}

function AppRouter() {
  return (
    <Router>
      <div>
        <nav>
          <ul>
            <li>
              <Link to="/">Home</Link>
            </li>
            <li>
              <Link to="/users/">Users</Link>
            </li>
            <li>
              <Link to="/about/create">About</Link>
            </li>
            <li>
              <Link to="/about/1">About with id</Link>
            </li>
          </ul>
        </nav>
        <Switch>
          <Route path="/" exact component={Index} />
          <Route path="/users/" component={Users} />
          <Route path="/about/create" component={About} />
          <Route path="/about/:id" component={AboutId} />
        </Switch>
      </div>
    </Router>
  );
}

const rootElement = document.getElementById("root");
ReactDOM.render(<AppRouter />, rootElement);

https://codesandbox.io/s/withered-lake-o9kx4

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56960929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档