我有一个具有唯一行ID的表。当我单击一行时,我使用该ID重定向到视图。为此,我正在做一个简单的window.location.href = "url/view/" + id;
,在查看页面上,我使用id = this.props.match.params.id;
来获取URL中设置的ID。
但是,我的观点有一些子菜单,这些子菜单使用路由加载不同的组件,这样做时,由于显而易见的原因,当我导航到其他组件时,id会丢失。单击表格行时,我需要一种发送该ID作为道具的方法。
这是我的第一个React应用,我正在努力。任何帮助表示赞赏。
我的表(引导表)
<BootStrapTable
keyField="id"
data={data}
columns={columns}
pagination={paginationFactory()}
rowEvents={rowevent}
{...props.baseProps}
/>
rowevent
const rowevent = {
onClick: (e, row) => {
console.log(row.id);
window.location.href = "url/view/" + row.id;
}
};
在我的查看页面上
render() {
const id = this.props.match.params.id;
return (
<Container className="col-md-12">
<Sidebar part={id} />
<Router>
<Switch>
<Route path="/url/view/:id" exact component={View} />
<Route path="/url/create" exact component={Add} />
<Route
path="/url/test"
exact
render={props => <Test {...props} test={id} />}
/>
</Switch>
</Router>
</Container>
);
我希望这一点可以弄清楚。在我看来,我有一个侧边栏和一些路由器,它们会根据我在侧边栏上单击的内容加载不同的组件。我不确定这是否是最好的方法。但是,当我单击侧边栏上的选项时,例如url/test
,我将ID传递给它以获得一些结果。现在在边栏中,如果我再次单击导航url/view/:id
,则URL中的ID消失了,因此它不会返回视图。因此,我需要从点击表中发送ID作为道具,这样它就不会消失。