親ノードを持たないリレーでノードを作成および削除する方法を見つけようとしています。NODE_DELETE
/ RANGE_DELETE
and RANGE_ADD
all には親ノードが必要なようです。Relay.js のルート クエリ オブジェクトからミューテーションの作成と削除を実行する方法はありますか?
注: FIELDS_CHANGE クエリを使用して作成を実行できる例を見つけましたが、ドキュメントや理由がありません。
REQUIRED_CHILDREN
この目的のために使用できるはずです。現在十分に文書化されておらず (文書化さえされていません)、やや紛らわしい名前が付いています (そのため、名前を変更して文書を改善する必要があります) 。EXTRA_FRAGMENT
将来的に改名される可能性が高い。
通常、ミューテーションを発行すると、「ファット クエリ」(ミューテーションの結果として変更される可能性のあるすべてのフィールド) と「追跡されたクエリ」(アプリがノードに要求したすべてのフィールド) の間の交差が実行されます。これまでのところ、変更されたときに更新する必要があります)、このクエリをミューテーションと共にサーバーに送信します。
したがって、親を持たないまったく新しいノードを作成するユースケースでは、 のようid
に識別フィールドを指定しREQUIRED_CHILDREN
、それを使用して、たとえば、新しく作成されたオブジェクトを表示するビューに移動できます。この回答には、これを行う方法の非常に詳細な例があります。