reactjs - 反应路由器 4 上的子路由
问题描述
我在划分应用程序和使用多个路由器时遇到问题。我有一个主路由器,它处理几个小型应用程序,并且在每个迷你应用程序中我想管理其合适的路由。我失败了什么?我想要做的是当我收到请求的数据时,将我重定向到一个新屏幕,但我无法得到它。有谁能够帮我?谢谢
示例https://stackblitz.com/edit/react-c2tkgf?file=Hello.js
路由.js
import { BrowserRouter } from 'react-router-dom'
import React from 'react'
import { Switch, Route } from 'react-router-dom'
import { AuthenticatedRoute } from 'components/authenticated-route'
import Clients from 'components/clients'
import { Login } from 'components/login'
import Home from './Home/Home'
const Routes = () => {
return (
<BrowserRouter>
<Switch>
<Route exact path="/" component={Home} />} />
<Route exact path="/clients" component={Clients} />
<Route exact path="/login" component={Login} />} />
</Switch>
</BrowserRouter>
)
}
export default Routes
客户端.js
import React, { Component } from 'react'
import { connect } from 'react-redux'
import Dashboard from './Dashboard/Dashboard'
import { Redirect, Route, Switch } from 'react-router-dom'
class Clients extends Component {
render() {
return (
<div>
<SearchCustomers />
{this.props.customer.token ? (
<div>
<Switch>
<Route path={`/clients:${this.props.customer.id}/dashboard`} component={Dashboard} />
</Switch>
<Redirect to={`/clients:${this.props.customer.id}/dashboard`} />
</div>
) : null}
</div>
)
}
}
const mapStateToProps = state => {
return {
customer: state.customer,
}
}
export default connect(mapStateToProps)(Clients)
解决方案
在您的 Routes 组件中,您有:
<Route exact path="/clients" component={Clients} />
<Route exact path="/login" component={Login} />} />
既然你exact
在那里,这些组件只会在恰好/clients
或时呈现/login
。在您构建的组件中,一旦您更改路径,您的父组件将不再呈现,因此这些组件内的任何内容都不会呈现。从您的路线中删除确切的:
<Rout path="/clients" component={Clients} />
<Rout path="/login" component={Login} />} />
推荐阅读
- terraform - Use vsphere_vmfs_datastore to create one DS per volume
- python - 大熊猫中奇怪的 SettingWithCopyWarning
- vue.js - 属性或方法 X 未在实例上定义,但在渲染期间被引用
- javascript - Webkit 目录上传问题
- git - 失去对存储库的访问权限后是否可以使用“git reset hard”?
- node.js - Heroku 构建脚本错误:未能推送一些参考
- azure - 我想创建一个 Vnet 位于不同资源组中的子网
- reactjs - 需要对 d3selection.DATA() 做一个简单的说明
- flutter - Flutter ios和状态栏文字颜色
- java - 超出最大游标 SQLException--配置问题或游标泄漏?