我在项目中嵌套路线。我有App.js,其中定义了路由,在组件内部,我有更多希望嵌套的路由。唯一的问题是我的嵌套路由在连接到redux的组件中。嵌套路由无法正常工作。
我已经从官方文档中尝试过它,但是它不起作用。
https://reacttraining.com/react-router/core/guides/philosophy
App.js
import { connect } from "react-redux";
import { withRouter, Route } from "react-router-dom";
function HowItWorks() {
return (
<div>
<h2 style={{ margin: 20 }}>How It Works</h2>
</div>
);
}
function AboutUs() {
return (
<div>
<h2 style={{ margin: 20 }}>About Us</h2>
</div>
);
}
class App extends React.Component {
render() {
return (
<div>
<Route path="/" exact component={HowItWorks} />
<Route path="/howitworks" exact component={HowItWorks} />
<Route path="/aboutus" component={AboutUs} />
<Route path="/admin" component={AdminContainer} />
</div>
);
}
}
下面是我的Redux容器文件,该文件根据App.js中指定的路由被调用。另外,我的App.js文件将来可能会通过connect()方法连接到redux。
AdminContainer.js
import { connect } from "react-redux";
import MainDesktopComponent from "../components/Admin/MainDesktopComponent";
const mapStateToProps = state => ({});
const mapDispatchToProps = dispatch => {
return {};
};
export default connect(
mapStateToProps,
mapDispatchToProps
)(MainDesktopComponent);
MainDesktopComponent.js
我已经尝试过此操作,即在Switch内部提供嵌套的路由以及许多其他方式,但是它不起作用。另外请注意,我还想将道具传递给Dashboard组件,该组件将通过mapstatetoprops来自上述redux容器组件。
import React from "react";
import Dashboard from "./Dashboard";
import { Route } from "react-router-dom";
import { Switch } from "react-router";
function MainDesktopComponent(props) {
return (
<div>
<Switch>
<Route
exact
path="/admin/dashboard"
render={props => {
<Dashboard/>;
}}
/>
</Switch>
</div>
);
}
export default MainDesktopComponent;
答案 0 :(得分:1)
我不确定,但是尝试一下呢?
<Switch>
<Route
exact
path="/admin/dashboard"
render={cProps => <Dashboard {...cProps} {...props} />}
/>
</Switch>
返回路线渲染组件。