用道具反应重定向到另一个页面

时间:2020-03-10 02:28:34

标签: reactjs

我有一个具有唯一行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作为道具,这样它就不会消失。

0 个答案:

没有答案