Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何在功能组件中实现子路由_Reactjs_React Redux_React Router - Fatal编程技术网

Reactjs 如何在功能组件中实现子路由

Reactjs 如何在功能组件中实现子路由,reactjs,react-redux,react-router,Reactjs,React Redux,React Router,我是新来的。我面临一个添加带有功能组件的子路由的问题 我知道,对于类组件,我们使用 <Router> <Route component={Main}> <Route path="/" component={Home}/> <Route path="/cars" component={Car}/> <Route path="/about" component={About}/>

我是新来的。我面临一个添加带有功能组件的子路由的问题

我知道,对于类组件,我们使用

<Router>
    <Route component={Main}>
        <Route path="/" component={Home}/>
        <Route path="/cars" component={Car}/>
        <Route path="/about" component={About}/>
    </Route>
</Router>`

`
为了在组件中访问,我们使用
{this.props.children}

有人能告诉我如何为功能组件中的子路由编写语法吗。(我用了
react-router-dom
)。

我建议你先读一读

功能部件样品可如下所示:

  • 基本路线
Routes.component.js

import * as React from "react";
import {BrowserRouter as Router, Switch, Route} from "react-router-dom";

const Routes = props =>
  <Router>
    <Switch>
      <Route exact path="/" component={Home} />
      <Route path="/about" component={About} />
      <Route path="/dashboard" component={Dashboard} />
    </Switch>
  </Router>
import * as React from "react";
import {Route, Link} from "react-router-dom";

const Dashboard = ({ match }) =>
  <div>
    <h2>Dashboard</h2>

    <div>
      <ul>
        <li>
          <Link to={`${match.url}/projects`}>Projects</Link>
        </li>
      </ul>

      <hr />

      <Route path={`${match.path}/projects`} component={Projects} />
    </div>
  </div>
import*as React from“React”;
从“react Router dom”导入{BrowserRouter as Router,Switch,Route};
const Routes=props=>
其中,Router是一种浏览器路由器,它使用HTML5历史API将用户界面与URL同步,Switch按URL呈现与位置匹配的第一个子
,而Route则在其路径与当前URL匹配时呈现某些用户界面

  • 嵌套路由
Dashboard.component.js

import * as React from "react";
import {BrowserRouter as Router, Switch, Route} from "react-router-dom";

const Routes = props =>
  <Router>
    <Switch>
      <Route exact path="/" component={Home} />
      <Route path="/about" component={About} />
      <Route path="/dashboard" component={Dashboard} />
    </Switch>
  </Router>
import * as React from "react";
import {Route, Link} from "react-router-dom";

const Dashboard = ({ match }) =>
  <div>
    <h2>Dashboard</h2>

    <div>
      <ul>
        <li>
          <Link to={`${match.url}/projects`}>Projects</Link>
        </li>
      </ul>

      <hr />

      <Route path={`${match.path}/projects`} component={Projects} />
    </div>
  </div>
import*as React from“React”;
从“react router dom”导入{Route,Link};
常量仪表板=({match})=>
仪表板
  • 项目

在要嵌套另一条管线的组件内,通过在管线组件中输入该管线,您可以在道具中获取

通过此选项,您可以使用其属性:

  • match.url
    :它是从父级收集的url的一部分,用于构建另一个子级

  • match.path
    :用于链接和构建另一个
    子级的路径

我会告诉你更多的。 你必须点击仪表板

这些都在React路由器文档中:)

我建议您先阅读

功能部件样品可如下所示:

  • 基本路线
Routes.component.js

import * as React from "react";
import {BrowserRouter as Router, Switch, Route} from "react-router-dom";

const Routes = props =>
  <Router>
    <Switch>
      <Route exact path="/" component={Home} />
      <Route path="/about" component={About} />
      <Route path="/dashboard" component={Dashboard} />
    </Switch>
  </Router>
import * as React from "react";
import {Route, Link} from "react-router-dom";

const Dashboard = ({ match }) =>
  <div>
    <h2>Dashboard</h2>

    <div>
      <ul>
        <li>
          <Link to={`${match.url}/projects`}>Projects</Link>
        </li>
      </ul>

      <hr />

      <Route path={`${match.path}/projects`} component={Projects} />
    </div>
  </div>
import*as React from“React”;
从“react Router dom”导入{BrowserRouter as Router,Switch,Route};
const Routes=props=>
其中,Router是一种浏览器路由器,它使用HTML5历史API将用户界面与URL同步,Switch按URL呈现与位置匹配的第一个子
,而Route则在其路径与当前URL匹配时呈现某些用户界面

  • 嵌套路由
Dashboard.component.js

import * as React from "react";
import {BrowserRouter as Router, Switch, Route} from "react-router-dom";

const Routes = props =>
  <Router>
    <Switch>
      <Route exact path="/" component={Home} />
      <Route path="/about" component={About} />
      <Route path="/dashboard" component={Dashboard} />
    </Switch>
  </Router>
import * as React from "react";
import {Route, Link} from "react-router-dom";

const Dashboard = ({ match }) =>
  <div>
    <h2>Dashboard</h2>

    <div>
      <ul>
        <li>
          <Link to={`${match.url}/projects`}>Projects</Link>
        </li>
      </ul>

      <hr />

      <Route path={`${match.path}/projects`} component={Projects} />
    </div>
  </div>
import*as React from“React”;
从“react router dom”导入{Route,Link};
常量仪表板=({match})=>
仪表板
  • 项目

在要嵌套另一条管线的组件内,通过在管线组件中输入该管线,您可以在道具中获取

通过此选项,您可以使用其属性:

  • match.url
    :它是从父级收集的url的一部分,用于构建另一个子级

  • match.path
    :用于链接和构建另一个
    子级的路径

我会告诉你更多的。 你必须点击仪表板


所有内容都在React路由器文档中:)

请参考我的答案,这有助于您尝试
准确的
建议谢谢您的回复。我能够在路由之间导航。但主要问题是我需要嵌套路由,在这里我不能使用链接标记调用详细信息/项目。语法是“请参考我的答案”,这有助于您尝试
精确
prop谢谢您的回复。我能够在路由之间导航。但主要问题是我需要嵌套路由,在这里我不能使用链接标记调用详细信息/项目。谢谢你的回复。我能够在路由之间导航。但主要问题是我需要嵌套路由,在这里我不能使用链接标记调用详细信息/项目。语法是我的意思,我想有一个像仪表板/细节和仪表板/项目一样的路由嵌套路由。在我的要求中,我将有许多嵌套路由,如c中的组件d,b中的组件c,a中的组件b。根据条件进行多个嵌套路由。最后感谢,通过我的修改,我想我已经理解了你想要的东西,而且很有效,您可以通过下面的链接进行尝试:)@mounikakommuril感谢您提供的解决方案。它帮助我发现了问题。我正在使用okta react登录。因此,当我尝试添加嵌套路由时,我遇到了一个错误,好像我无法在“历史记录”上执行“pushState”:无法在具有URL的文档中创建具有URL“”的历史记录状态对象源代码“”和URL“”。感谢您的回复。我能够在路由之间导航。但主要问题是我需要嵌套路由,在这里我不能使用链接标记调用详细信息/项目。语法是我的意思,我想有一个像仪表板/细节和仪表板/项目一样的路由嵌套路由。在我的要求中,我将有许多嵌套路由,如c中的组件d,b中的组件c,a中的组件b。根据条件进行多个嵌套路由。最后感谢,通过我的修改,我想我已经理解了你想要的东西,而且很有效,您可以通过下面的链接进行尝试:)@mounikakommuril感谢您提供的解决方案。它帮助我发现了问题。我正在使用okta react登录。因此,当我尝试添加嵌套路由时,我遇到了一个错误,好像我无法在“历史记录”上执行“pushState”:无法在具有URL的文档中创建具有URL“”的历史记录状态对象源代码“”和URL“”。