我正在构建一个没有Redux的React项目。
我希望有两个,或者在这种情况下有3个不同的开关
当用户登录时,第一台交换机将能够在主页(普通网站)和用户页面(仪表板)之间切换... 然后每个都将是Switchers,因此Home将在Home组件之间切换,UserPage将在UserPage组件之间切换。这甚至可能吗?
Main Switcher
Home Page (Switch) Dashboard
Home About Contact, Careers My Profile, Courses, Classes, Donations...
这就是项目的外观和结构。
答案 0 :(得分:10)
您可以根据需要使用尽可能多的Switch
个组件。它只是呈现其下指定的所有路线的第一个匹配。
在你的情况下,这些方面应该有用:
const Home = ({match}) => {
return(
<Switch>
<Route path={match.url} exact={true} component={HomeDefaultComponent} />
<Route path=`${match.url}/about` exact={true} component={About} />
<Route path=`${match.url}/contact` exact={true} component={Contact} />
<Route path=`${match.url}/careers` exact={true} component={careers} />
</Switch>
);
};
const Dashboard = ({match}) => {
return(
<Switch>
<Route path={match.url} exact={true} component={DashboardDefaultComponent} />
... other Dashboard paths like Home component above
</Switch>
);
};
const App = () => {
return(
<Switch>
<Route path='/home' component={Home} />
<Route path='/dashboard' component={Dashboard} />
</Switch>
);
}