私は現在、graphcool のデータ プロバイダーに基づいてプリズマ<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を含むリポジトリです
助けてくれてどうもありがとう。
アップデート:
試してみたい場合は、ここにコードサンドボックスがあります: 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!
}