<ReferenceArrayInput /> 无法使用我的自定义数据提供程序 (prisma)
<ReferenceArrayInput /> not working with my custom data provider (prisma)
我目前正在基于 graphcool 的数据提供程序为 prisma 构建数据提供程序,但未能成功使 <ReferenceArrayInput />
正常工作。
该组件成功查询了项目的值和所有可能的可用值,但在尝试匹配两者时似乎失败了。结果,我得到一个标签,上面写着 At least one of the associated references no longer appears to be available.
,没有选择任何值。
这是我的数据提供商返回的数据:
由 GET_MANY
获取实际选择的请求返回:
[
{
"id": "cji4xk7ly00k3085444gszh6e",
"name": "value1",
"option.id": "cji4xk7lx00k20854ns2bersv",
"option": {
"id": "cji4xk7lx00k20854ns2bersv"
}
},
{
"id": "cji4xk7lz00k40854gp876vgn",
"name": "value2",
"option.id": "cji4xk7lx00k20854ns2bersv",
"option": {
"id": "cji4xk7lx00k20854ns2bersv"
}
}
]
和GET_LIST
请求返回的数据抓取所有可能的值:
[
{
"id": "cji4xk7lz00k40854gp876vgn",
"name": "value2",
"option.id": "cji4xk7lx00k20854ns2bersv",
"option": {
"id": "cji4xk7lx00k20854ns2bersv"
}
},
{
"id": "cji4xk7ly00k3085444gszh6e",
"name": "value1",
"option.id": "cji4xk7lx00k20854ns2bersv",
"option": {
"id": "cji4xk7lx00k20854ns2bersv"
}
},
{
"id": "cjit6nvot00j80954n53vj6vt",
"name": "1x100ml",
"option.id": "cjit6dejm00bt0954ts5g2f5g",
"option": {
"id": "cjit6dejm00bt0954ts5g2f5g"
}
},
{
"id": "cjit6gu5o00d00954vzfuda0l",
"name": "19mg",
"option.id": "cjit6e66i00cb0954u1zlg1i3",
"option": {
"id": "cjit6e66i00cb0954u1zlg1i3"
}
}
]
在 JSX 部分,这是我的代码:
export const OptionEdit = props => (
<Edit title="Edit an option" {...props}>
<SimpleForm>
<DisabledInput source="id" />
<TextInput source="name" />
<ReferenceArrayInput source="values" reference="OptionValue" perPage={100}>
<SelectArrayInput optionText="name" />
</ReferenceArrayInput>
</SimpleForm>
</Edit>
);
如果需要,我可以尝试为您设置一些东西来重现我的问题,我希望这足以让您帮助我。如果它能有所帮助,这里是包含我的(非常新的)数据提供者和仪表板的存储库 ra-data-prisma
非常感谢你的帮助。
更新:
如果你想尝试,这里有一个codesandbox:https://codesandbox.io/s/xvqm6mnyxz?expanddevtools=1&initialpath=App.js&module=%2Fsrc%2FApp.js
只需尝试编辑 User
,然后在控制台中查看响应以及未加载选项的 SelectArrayInput
。
这是用于生成 codesanbox 示例中使用的 Prisma API 的数据模型:
type User {
id: ID! @unique
name: String!
addresses: [Address!]!
}
type Address {
id: ID! @unique
city: String!
user: User!
}
知道了。 react-admin
需要一组 ID 来匹配资源。我需要做的就是将 <ReferenceArrayInput />
source
属性设置为 <resource>Ids
。这解决了问题。
我目前正在基于 graphcool 的数据提供程序为 prisma 构建数据提供程序,但未能成功使 <ReferenceArrayInput />
正常工作。
该组件成功查询了项目的值和所有可能的可用值,但在尝试匹配两者时似乎失败了。结果,我得到一个标签,上面写着 At least one of the associated references no longer appears to be available.
,没有选择任何值。
这是我的数据提供商返回的数据:
由 GET_MANY
获取实际选择的请求返回:
[
{
"id": "cji4xk7ly00k3085444gszh6e",
"name": "value1",
"option.id": "cji4xk7lx00k20854ns2bersv",
"option": {
"id": "cji4xk7lx00k20854ns2bersv"
}
},
{
"id": "cji4xk7lz00k40854gp876vgn",
"name": "value2",
"option.id": "cji4xk7lx00k20854ns2bersv",
"option": {
"id": "cji4xk7lx00k20854ns2bersv"
}
}
]
和GET_LIST
请求返回的数据抓取所有可能的值:
[
{
"id": "cji4xk7lz00k40854gp876vgn",
"name": "value2",
"option.id": "cji4xk7lx00k20854ns2bersv",
"option": {
"id": "cji4xk7lx00k20854ns2bersv"
}
},
{
"id": "cji4xk7ly00k3085444gszh6e",
"name": "value1",
"option.id": "cji4xk7lx00k20854ns2bersv",
"option": {
"id": "cji4xk7lx00k20854ns2bersv"
}
},
{
"id": "cjit6nvot00j80954n53vj6vt",
"name": "1x100ml",
"option.id": "cjit6dejm00bt0954ts5g2f5g",
"option": {
"id": "cjit6dejm00bt0954ts5g2f5g"
}
},
{
"id": "cjit6gu5o00d00954vzfuda0l",
"name": "19mg",
"option.id": "cjit6e66i00cb0954u1zlg1i3",
"option": {
"id": "cjit6e66i00cb0954u1zlg1i3"
}
}
]
在 JSX 部分,这是我的代码:
export const OptionEdit = props => (
<Edit title="Edit an option" {...props}>
<SimpleForm>
<DisabledInput source="id" />
<TextInput source="name" />
<ReferenceArrayInput source="values" reference="OptionValue" perPage={100}>
<SelectArrayInput optionText="name" />
</ReferenceArrayInput>
</SimpleForm>
</Edit>
);
如果需要,我可以尝试为您设置一些东西来重现我的问题,我希望这足以让您帮助我。如果它能有所帮助,这里是包含我的(非常新的)数据提供者和仪表板的存储库 ra-data-prisma
非常感谢你的帮助。
更新:
如果你想尝试,这里有一个codesandbox:https://codesandbox.io/s/xvqm6mnyxz?expanddevtools=1&initialpath=App.js&module=%2Fsrc%2FApp.js
只需尝试编辑 User
,然后在控制台中查看响应以及未加载选项的 SelectArrayInput
。
这是用于生成 codesanbox 示例中使用的 Prisma API 的数据模型:
type User {
id: ID! @unique
name: String!
addresses: [Address!]!
}
type Address {
id: ID! @unique
city: String!
user: User!
}
知道了。 react-admin
需要一组 ID 来匹配资源。我需要做的就是将 <ReferenceArrayInput />
source
属性设置为 <resource>Ids
。这解决了问题。