【问题标题】:React-Admin doesn't show column data in List componentReact-Admin 不在列表组件中显示列数据
【发布时间】:2020-08-26 08:36:37
【问题描述】:

我似乎无法理解数据丢失的原因。这是我的领域:

<ReferenceField source="imageId" reference="files">
        <TextField source="urlPath" />
</ReferenceField>

这是 papers 主模型返回的内容:

brandId: "b3dc4246-3adf-4f4e-9f81-294f23d24977"
brandModelId: "2819360d-2e6e-48e4-88a3-823a03177a7c"
colorId: "98031f74-a83f-4389-b9d6-bab959ff8a0e"
gsm: 200
id: "058cc13d-1255-4d9b-9ccf-e087ddb3935d"
imageId: "1bc99717-f60c-485e-989a-5d1726501b8d"
originalSize: "A4"
paperMaterialId: "5afd0d7c-5ace-49e3-a538-894ce288fe71"
paperSurfaceId: null
price: 12
ref: "44202129"
storeId: "2f7567ad-fa62-4bda-851b-89b8c39a189e"

以下是相关模型 files 返回的内容:

id: "1bc99717-f60c-485e-989a-5d1726501b8d"
originalFileName: "palette1.2.png"
type: "undefined"
urlPath: "asdf/101d7c68-9bf4-4d55-bbb5-818f62c480a3-palette1.2.png"

但这是我缺少数据的屏幕截图:

请注意,商店相关字段有效,其代码完全相同:

      <ReferenceField source="storeId" reference="stores">
        <TextField source="name" />
      </ReferenceField>

另外,这是我的getMany dataProvider:

  getMany: (resource, params) => {
    const query = {
      filter: JSON.stringify({ id: params.ids }),
    };
    const url = `${API_URL_LOCAL}/${resource}?${stringify(query)}`;

    return request(url, 'get', {}, {}).then(({ data }) => ({
      data,
    }));
  },

欢迎任何帮助。

【问题讨论】:

  • 您有一个 作为管理员子级吗?
  • 啊!就是这样——我的名字错了。我把 images 而不是 files 作为资源。谢谢!也许回答一下,这样我就可以标记它了
  • 我必须承认我也是第一次写了images。非常容易混淆。我添加了一个答案,比统计数据中的另一个未回答的问题更好,也可以防止其他人浪费时间来这里回答。谢谢

标签: react-admin


【解决方案1】:

如果您有一些参考字段有效,而另一些则无效,并且控制台中没有记录错误,这可能意味着未使用 &lt;Resource name="files" .../&gt; 将非工作参考资源声明为 Admin 子资源。

来自 react-admin 文档:

注意:您必须为参考资源添加&lt;Resource&gt; - react-admin 需要它来获取参考数据。你可以省略 如果要将其隐藏在侧边栏中,请在此参考中列出道具 菜单。

https://marmelab.com/react-admin/Fields.html#referencefield

如果没有参考资源在工作,并且资源已正确声明,则错误可能取决于您的数据提供者。记录 getMany 请求的响应,看看它是否符合预期的格式,是否包含任何数据而不是空数组:

getMany     { data: {Record[]}, validUntil?: {Date} }

{Record} 是一个至少具有 id 属性的对象字面量,例如{ id:123,标题:“你好,世界”}。

响应中的 validUntil 字段是可选的。它使 应用程序缓存,客户端优化以加速渲染 并减少网络流量

https://marmelab.com/react-admin/DataProviders.html#writing-your-own-data-provider

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-13
    • 2019-11-14
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    相关资源
    最近更新 更多