2017-03-25 1 views
0

は私がリレー+ graphqlチュートリアルを以下していると私は、このコードと混同カム:どのように適切に継承するためにgraphqlにIdフィールドを作成するのですか?

const GraphQLTodo = new GraphQLObjectType({ 
    name: 'Todo', 
    fields: { 
    id: globalIdField('Todo'), 
    text: { 
     type: GraphQLString, 
     resolve: (obj) => obj.text, 
    }, 
    complete: { 
     type: GraphQLBoolean, 
     resolve: (obj) => obj.complete, 
    }, 
    }, 
    interfaces: [nodeInterface], 
}); 

テキストと完全なフィールドの解決には、どこから来るのobjをしますか?クエリからのobjパラメータですか?また、idからクエリを解決するにはどうすればよいですか?それを解決する必要はありませんか?たとえば、これはidフィールドのコードです:

id: { 
    id: globalIdField('Todo'), 
    resolve: (obj) => obj.id, 
} 

上記のコードは機能し、重複しませんか?どのようにIdフィールドを適切に作成してリレーに準拠させるのですか?

答えて

1

objは、通常、永続的なストレージから取得したどのような形式のレコードでもあります。この場合、少なくとも2つのプロパティ:textcompleteを持つTodoオブジェクトです。これにより、解決機能が簡単になります。解決機能を使用すると、以下のような、より複雑なことを行うことができますので、存在します。

リレー準拠したidに
fullName: { 
    type: GraphQLString, 
    resolve: (obj) => obj.firstName + ' ' + obj.surname, 
} 

、私はあなたが何もする必要はないと思います。 globalIdFieldあなたのためにそれを行います。

+0

永続ストレージとはどういう意味ですか?データベース? –

+0

ええ、データベース(SQLなど)は、通常、データが格納される場所です。一部のGraphQLチュートリアルでは、永続性のないインメモリのデータ構造に単純化されていることがわかりました。これは通常、チュートリアルの単純化です。 – dmnd

+1

あなたの時間と説明をお寄せいただきありがとうございました。 –

関連する問題