【发布时间】:2016-11-16 04:33:38
【问题描述】:
我正在使用 react router v4 进行路由。有一种情况是,当单击产品时,我想在横幅下方显示产品,但是当单击添加餐厅时,我不想在横幅下方的同一页面中显示它,而是在不同的页面中显示它。我如何在反应路由器 v4 上做到这一点?
这是我的代码(现在点击添加餐厅时,表单框显示在同一页面的横幅下)
const routes = [
{
pattern: '/restaurant',
component: () => <Content />
},
{ pattern: '/addrestaurant',
component: () => <AddRestaurant />
}
];
class HomeScreen extends Component {
render() {
return (
<Router>
<div>
<div className="ui grid banner">
<div className="computer tablet only row">
<div className="ui inverted fixed menu navbar page grid">
<Link to="/restaurant" className="brand item">Restaura</Link>
<Link to='/addrestaurant' className="item tab">Add Restaurant</Link>
<Link to="/products" className="item tab">Products</Link>
</div>
</div>
</div>
<div className="ui page grid">
{routes.map((route, index) => (
<Match
key={index}
pattern={route.pattern}
component={route.component}
exactly={route.exactly}
/>
))}
</div>
</div>
</Router>
);
}
}
【问题讨论】:
-
“我想在不同的页面显示”。这是在新选项卡/窗口中还是在替换横幅的视图中?如果是新标签,你可以这样做
<Link to="addrestaurant" className="item tab" target="_blank"> -
不在新标签中。在同一选项卡中,从上到下具有不同的布局。抱歉,英语不是我的母语,所以我很难向您说明我的问题。
-
就像当您单击 stackoverflow 的“问题”选项卡旁边的“工作”按钮时一样。问题和工作的页面不同。在我的例子中,主页是所有菜单(主页、产品和添加餐厅)的父级。产品显示在作为主页的父组件中(您在横幅下方看到三个餐厅)。添加餐厅应该显示在另一个页面而不是主页。
标签: javascript reactjs react-router