微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

React-admin 重定向和道具

如何解决React-admin 重定向和道具

我正在使用 React Admin userRedirect 钩子,并且我正在重定向到作为组件的“页面”。有没有办法将数据传递到我重定向到的页面/组件? 我尝试了这个并观察了以下内容

我要重定向到的页面

const PublicPage = (props) => {
    console.log('data: ' + props.data);

    return(
        <Card>
        <Title title="Public Page" />
        <CardContent>
            This is a public page. + {props.data}
        </CardContent>
    </Card>
    )
}

如果我这样做:redirect('/public',{data:'this is some data'}),控制台日志显示'data: undefined'并且没有显示任何数据。

这对 RA 可行吗?感谢您提出的任何建议。

基督徒

解决方法

您可以使用查询字符串(例如“/public?foo=bar”)重定向到某个位置,然后从您的 PublicPage 组件中读取该查询字符串。

或者,您可以使用位置 state - 由 react-router 提供的某种数据容器。 useRedirect 不支持此操作,但手动操作并不难:

import { useHistory } from 'react-router-dom';

const useRedirectToPageWithState = () => {
   const history = useHistory();
   return useCallback((pathname,state) => {
      history.push({
          pathname,state
      })
   },[history]);
}

然后在您的 PublicPage 组件中,您可以使用 useLocation 读取位置状态:

const PublicPage = () => {
    const { state: data } = useLocation();
    // now data contains what you passed to the page

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。