2

私は現在、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!
}
4

1 に答える 1

3

とった。react-adminリソースに一致する ID の配列が必要です。私がする必要があったのは、<ReferenceArrayInput /> sourceprop をに設定することだけでした<resource>Ids。これで問題は解決しました。

于 2018-08-23T12:02:40.787 に答える