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

在 React-Admin 中计算来自 ArrayField 或 Datagrid 的条目

如何解决在 React-Admin 中计算来自 ArrayField 或 Datagrid 的条目

如何计算数组字段的长度并将其输出为文本字段或数字字段?

工作和输出 DataGrid 的 ArrayField 代码

               <ArrayField source="re_benutzers">
                    <Datagrid>
                        <TextField source="vorname" />
                    </Datagrid>
                </ArrayField>

来源:(来自 Strapi)

 {
    "id": 5,"name": "sdf","re_benutzers": [{
        "id": 1,"vorname": "Something",},

^this 可以容纳多个条目,我想输出计数。

解决方法

您可以使用 FunctionField 组件执行此操作: https://marmelab.com/react-admin/Fields.html#functionfield

<FunctionField label="Count" render={record => `${record?.re_benutzers?.length ?? ""}`} />
,

我认为您可以为此使用自定义组件而不是 DataGrid。

ArrayField 将注入在列表上下文中检索到的所有 id。 因此,您可以执行以下操作:

const LengthField = (props) => {
    const { ids,loaded } = useListContext(props);
    
    return loaded ? ids.length : null;
};
// And then
<ArrayField source="re_benutzers">
    <LengthField />
</ArrayField>

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