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

ReferenceManyField 中的数据网格显示行但没有数据

如何解决ReferenceManyField 中的数据网格显示行但没有数据

RA 新手。请放轻松。

我有一个带有两个选项卡的 tabbedshowlayout。两个选项卡都包含一个 ReferenceManyField:

     <SimpleShowLayout>
            <TabbedShowLayout>
                    <Tab label="Store(s)">
                        <ReferenceManyField label="Stores" reference="stores" target="data0">
                            <Datagrid optimized rowClick="show" >
                                <TextField source="name"/>
                                <TextField source="storeStatus"/>
                                <DateField source="updatedAt" locales="en-UK"/>
                                <EditButton/>
                            </Datagrid>
                        </ReferenceManyField>
                    </Tab>
                    <Tab label="Contact(s)">
                        <ReferenceManyField label="Contacts" reference="contacts" target="data1">
                            <Datagrid optimized>
                                <TextField source="id"/>
                                <TextField source="firstName"/>
                                <TextField source="lastName"/>
                                <TextField source="phone"/>
                                <BooleanField source="financeContact"/>
                            </Datagrid>
                        </ReferenceManyField>
                    </Tab>
             </TabbedShowLayout>
    </SimpleShowLayout>

The first ReferenceManyField's datagrid displays data as expected.

The second ReferenceManyField's datagrid displays the correct number of rows,but no data.

我看不出这两个对象的处理方式有什么不同。我应该补充一点,dataProvider 已经过全面测试,并且正在按要求提供数据。 有其他人遇到过这样的问题吗?

非常感谢所有提示和技巧。如果没有解决方案,则提示如何深入研究 RA...

解决方法

不是问题的解决方案,而是伴随上述工作示例的源代码: https://codesandbox.io/s/react-admin-referencemanyfield-issue-vghuj 再次重申:任何凭据都足以登录工作示例。

,

您尚未为 stores 资源定义 <Resource>。这是 <ReferenceManyField> 工作所必需的,as explained in the documentation

注意:您必须为参考资源添加一个 <Resource> - react-admin 需要它来获取参考数据。如果你想在侧边栏菜单中隐藏它,你可以省略这个参考中的 list 属性。

function App() {
  return (
    <Admin authProvider={authProvider} dataProvider={dataProvider}>
      <Resource name="companies" {...companies} />
+     <Resource name="stores"  />
    </Admin>
  );
}

顺便说一下,您在 <TabbedShowLayout> 中使用了 <SimpleShowLayout>,这是不受支持的。

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