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

R H*_*R H 1 reactjs react-router react-admin

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

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

       {/* fileds */}

        </TabbedForm >
  </Edit>
Run Code Online (Sandbox Code Playgroud)

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

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

我的问题是如何像表演中那样传递道具?

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

有一些丢失的道具,我需要它们,比如 id。

我应该做什么来解决我的问题?

谢谢你!

Gil*_*cia 6

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

第一个选项

<Route exact path="/XXX/:id/YYY" render={() => <MyRoute />} />
Run Code Online (Sandbox Code Playgroud)

在 MyRoute 中:

import { useParams } from 'react-router';

const MyRoute = () => {
    let { id } = useParams();
    // ...
}
Run Code Online (Sandbox Code Playgroud)

第二个选择

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