You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Admin中创建URL后重定向到自定义页面的问题求助

解决React Admin创建URL后重定向到Campaign编辑页的问题

你的问题出在硬编码哈希路径以及路由格式不匹配上,React Admin内部有自己的路由处理机制,直接用/#/开头的路径会导致识别失败。下面提供两种可行的解决方案:

方案一:修正redirect属性的路径格式

  • 去掉路径中的/#/前缀,改用React Admin标准的路由格式
  • 确保campaign_id正确获取(比如通过useParams从路由参数中提取)
  • 使用函数形式的redirect保证动态获取最新参数

修改后的代码:

import { Create, SimpleForm, TextInput, NumberInput, useParams } from 'react-admin';

export default () => {
    // 从父路由参数中获取campaign_id,需确保父路由包含该参数
    const { campaign_id } = useParams();

    // 返回Campaign编辑页的标准路由路径
    const redirectToCampaignEdit = () => `/campaign/${campaign_id}/edit`;

    return (
        <Create redirect={redirectToCampaignEdit}>
            <SimpleForm>
                <h2>New URL for campaign #{campaign_id}</h2>
                <TextInput source="url" />
                <NumberInput source="weight" />
            </SimpleForm>
        </Create>
    );
}

方案二:通过onSuccess回调手动重定向

如果需要更灵活的控制逻辑,可以使用onSuccess回调结合useNavigate手动触发重定向:

import { Create, SimpleForm, TextInput, NumberInput, useParams, useNavigate } from 'react-admin';

export default () => {
    const { campaign_id } = useParams();
    const navigate = useNavigate();

    // 表单提交成功后执行重定向
    const handleSubmitSuccess = () => {
        navigate(`/campaign/${campaign_id}/edit`);
    };

    return (
        <Create onSuccess={handleSubmitSuccess}>
            <SimpleForm>
                <h2>New URL for campaign #{campaign_id}</h2>
                <TextInput source="url" />
                <NumberInput source="weight" />
            </SimpleForm>
        </Create>
    );
}

注意事项

  • 确认你的Campaign编辑页实际路由路径,若资源名为campaigns,路径应为/campaigns/${campaign_id}/edit
  • 确保campaign_id已正确赋值,避免出现undefined导致路径错误

内容的提问来源于stack exchange,提问作者zzmaster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 18:01:01