7

有没有办法为 a 使用不同的参考字段(除了idReferenceInput

例如:
我有一个languages资源,我想使用一个language_code字段来填充它。
注意,我不想使用 的id字段languages,我想使用code字段。

我已经设法通过使用以下方法使其工作:

<ReferenceInput 
  label="Language code" 
  source="language_code" 
  reference="languages"
>
  <SelectInput optionText="name" optionValue="code" />
</ReferenceInput>

唯一的问题是:

从选择输入中选择一种语言后,ReferenceInput尝试使用code字段而不是id字段来获取资源,这会返回 404 错误。

4

2 回答 2

1

存储为languages资源中的引用的值必须是它的标识符。实际上,如果您ReferenceField在资源的显示视图中添加 a ,它如何获取没有 id 的语言?

您在这里有两个选择:

  • 让你的 API 支持languages/en路由
  • language_id将除了存储language_code在您的资源中并创建一个自定义ReferenceInput,它将在选择后返回两个值
于 2018-06-30T07:41:52.887 回答
0

我们知道我们使用“id”字段的根本原因<ReferenceInput>吗?

关于这一点,这是 react-admin 的官方解释
IMO,如果我们react-admin从那时起抓住那一点,我们可以(尝试)使用任何其他领域,也许!

在您的情况下,获取数据并将渲染委托<SelectInput>给它,它将可能的选择作为选择属性传递给它。这很好用,因为您可以选择“语言”。

你知道这optionValue="id"是默认的吗?

两种可能的解决方案:

  • 消除optionValue="code"

  • 你能找到一种方法来映射你"code""id"吗?
    请记住,在这种情况下<SelectInput>填充它的choices道具来自<ReferenceInput>,
    choices=[{id='', value=''}, {...}]

于 2020-03-18T03:00:59.007 回答