我有一个活动资源;id字段的每个活动链接到url的独立页面,属于该活动。(我还是不知道该怎么做)。
我使用自定义字段
import { useRecordContext, useGetOne } from 'react-admin';
import { Link } from 'react-router-dom';
export default () => {
const campaign = useRecordContext();
const { data, isLoading } = useGetOne('campaign', { id: campaign.campaign_id });
const campaignUrlsPage = `/campaign/${campaign.id}/urls/`;
return /*isLoading ? null : */ <Link to={campaignUrlsPage}>{campaign.id}</Link>;
};
为什么我注释掉isLoading? 这很奇怪,但它总是正确的,毕竟我不会那样注意到任何人工制品。
链接显示在相应的单元格中,它们实际上是锚标记,但是单击它们会导致记录编辑。是的,我有rowClick="edit">我真的很需要此外,我在网格中有UrlField,点击它首先显示记录编辑页面,但接下来它指向URL。这个问题能解决吗?
提前感谢。
为了支持rowClick="edit"
,每个数据网格行都有一个click处理程序。
如果将按钮放在数据网格中,当用户单击按钮时,单击甚至会向下传播到数据网格行,并触发行单击事件处理程序。
所以你必须在你的链接中停止事件传播:
export default () => {
const campaign = useRecordContext();
const { data, isLoading } = useGetOne('campaign', { id: campaign.campaign_id });
const campaignUrlsPage = `/campaign/${campaign.id}/urls/`;
return isLoading ? null : (
<Link
to={campaignUrlsPage}
onClick={e => e.stopPropagation()}
>
{campaign.id}
</Link>
);
};