【问题标题】:Datagrid within ReferenceManyField showing rows but no dataReferenceManyField 中的数据网格显示行但没有数据
【发布时间】:2021-04-28 15:46:31
【问题描述】:

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 的提示......

【问题讨论】:

  • 您的代码似乎正确。删除优化选项会改变什么吗?如果没有,请尝试使用 react-admin CodeSandbox (codesandbox.io/s/github/marmelab/react-admin/tree/master/…) 复制您的问题,以便我们检查您的代码。
  • 我花了一点时间,但我创建了一个简化版本的应用程序来演示这个问题:vghuj.csb.app 登录是假的。任何凭据都可以。列出了一个“公司”。 CompanyShow.tsx 有一个选项卡式视图,它应该显示通过 getManyReference 获取的数据。 getManyReference 确实成功地获取了数据,但它没有正确呈现。有趣的是,在两个选项卡中,第一个选项卡的数据在我的环境中正确呈现。任何建议都非常受欢迎。

标签: react-admin


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    顺便说一句,您在&lt;SimpleShowLayout&gt; 中使用&lt;TabbedShowLayout&gt;,这是不受支持的。

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-17
      • 1970-01-01
      • 2017-10-02
      • 1970-01-01
      • 2013-03-08
      相关资源
      最近更新 更多