如何在 react-admin 中为自定义路由提供道具?

问题描述

我正在使用 reac-admin,并希望在编辑后将用户重定向自定义路由。

  <Edit {...props}>
        <TabbedForm redirect={redirect(`/XXX/${props.id}/YYY`)}  >

       {/* fileds */}

        </TabbedForm >
  </Edit>

自定义路线中我有这条路线:

    <Route exact path="/XXX/:id/YYY" render={(props) => <MyRoute {...props} />} />

我的问题是如何像 show 一样传递 props?

为什么重定向显示redirect="show" 时,传递的 props 与重定向自定义路由时不同?

缺少道具,我需要它们,例如 id。

我应该怎么做才能解决我的问题?

谢谢!

解决方法

您有两种方法可以做到这一点:

第一个选项

<Route exact path="/XXX/:id/YYY" render={() => <MyRoute />} />

在 MyRoute 中:

import { useParams } from 'react-router';

const MyRoute = () => {
    let { id } = useParams();
    // ...
}

第二个选项

<Route exact path="/XXX/:id/YYY" render={(props) => <MyRoute id={props.match.params.id} />} />