2

と を持つ GraphQL モデルがあるPeopleとしPartiesます。

このようなもの:

Person {
   name: String
   parties: PartyConnection
}

Party {
   place: String
   dateTime: String
   people: PeopleConnection
}

を見て、彼らがPersonPartiesをしようとしているのかを確認できます。これは、Relay によってキャッシュされます。

また、突然変異を行って新しいパーティーを作成し、それに何人かを追加することもできます。パーティーに追加したすべての人がキャッシュで無効化されていることを確認して、その人のページに移動したときに、追加したばかりのパーティーにそれらが表示されるようにするにはどうすればよいですか。

ミューテーションのペイロードは次のようになります。

fragment on CreatePartyMutationPayload {
    party
    partyMembers - not sure what type this should be, an array of ids?
}

getConfigspartyMembers配列内のすべての人がキャッシュ内のpartyフィールドを無効にする必要があることをRelayに伝えるには、どのペイロード構造が必要ですか?

また、1 人を招待すると、そのパートナーも自動的に招待されるというサーバー側のルールがいくつかある可能性があります。Personこれは、ペイロードが戻ってくるまで、クライアント側のミューテーション オブジェクトで無効化される IDの決定的なリストがないことを意味します。ペイロード内のパーティーのすべての人が無効になるようにするにはどうすればよいですか?

4

1 に答える 1

0

人は 1 つのパーティーだけに参加できますか、それとも複数のパーティーに参加できますか? 無効化という言葉を使っているのでお願いします。1 人が複数のパーティーに参加できる場合は、無効にする必要はないと思います。彼らが1つのパーティーにしか行けない場合は、必要に応じて接続を調整する必要があるかもしれません.

を使用RANGE_ADDして、新しいパーティ間接続を追加できます。よりターゲットを絞った手動のアプローチを採用している場合は、 を使用RANGE_ADDして、それぞれのパーティ コネクションにユーザーを追加することもできます。パーティーから誰かを削除する必要がある場合は、 を参照してくださいNODE_DELETE。誰を、何を変更すればよいかよくわからないが、パーティーの参加者について何かが変更されていることはわかっている場合は、「すべてを再取得する」アプローチに進み、 を使用できますFIELDS_CHANGE

サーバー側のロジックが複雑で、そこで多くの変更を行う場合は、 を使用FIELDS_CHANGEしてすべてを再フェッチして変更をキャッチするか、すべての変更を適切に報告するように変更ペイロードを構築してみてください。

于 2016-01-29T00:35:59.747 に答える