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
)。我建议你先读一读
功能部件样品可如下所示:
- 基本路线
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匹配时呈现某些用户界面
- 嵌套路由
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})=>
仪表板
-
项目
在要嵌套另一条管线的组件内,通过在管线组件中输入该管线,您可以在道具中获取
通过此选项,您可以使用其属性:
:它是从父级收集的url的一部分,用于构建另一个子级match.url
:用于链接和构建另一个match.path
子级的路径
- 基本路线
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匹配时呈现某些用户界面
- 嵌套路由
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})=>
仪表板
-
项目
在要嵌套另一条管线的组件内,通过在管线组件中输入该管线,您可以在道具中获取
通过此选项,您可以使用其属性:
:它是从父级收集的url的一部分,用于构建另一个子级match.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“”。