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
相关产品推荐
相关产品推荐

