2017-09-13 4 views
1

私のアプリの目標は、記入して編集するフォームのリストを保存して呼び出すことができるようにすることです。 1人のユーザーは多くのフォームを持ち、1つのフォームはそれ自身のいくつかのフィールドで構成されます。カスタムタイプのリストをGraphQL突然変異に渡す

const FormType = new GraphQLObjectType({ 
    name: 'FormType', 
    fields: { 
    id: { type: GraphQLID }, 
    name: { type: GraphQLString }, 
    email: { type: GraphQLString } 
    } 
}); 
const UserType = new GraphQLObjectType({ 
    name: 'UserType', 
    fields: { 
    id: { type: GraphQLID }, 
    email: { type: GraphQLString }, 
    firstName: { type: GraphQLString, default: '' }, 
    lastName: { type: GraphQLString, default: '' }, 
    phone: { type: GraphQLString, default: '' }, 
    forms: { type: new GraphQLList(FormType) } 
    } 
}); 

そして、このように私の突然変異は:

const mutation = new GraphQLObjectType({ 
    name: 'Mutation', 
    fields: { 
    saveForm: { 
     type: UserType, 
     args: { 
     userID: { type: GraphQLID }, 
     form: { type: FormType } // ??? 
     }, 
     resolve(parentValue, { userID, form }) { 
     // I'll figure out what to do here when the time comes 
     } 
    } 
    } 
}); 

私はGraphQLListで動作する突然変異を作成することができないよう、私の持っている私のタイプは、例えば、次のように設定した場合

。私はこのエラーを得続ける:私の研究は私に言っている

Error: Mutation.saveForm(form:) argument type must be Input Type but got: FormType.

は... FormTypeGraphQLInputObjectTypeにする必要があることを意味します。それに応じて変更すると、エラーが表示されます。

Error: Mutation.saveForm(form:) argument type must be Output Type but got: FormType.

実際には何も変わりません。誰もこの問題の実際の例を知っていますか?

答えて

0

正しく入力したタイプをGraphQLInputObjectTypeに変更したときに、入力タイプにUserType.formsフィールドのタイプも変更されるため、UserTypeが出力タイプであることを覚えておいてください。ここではFormTypeFormInputTypeを作成し、それぞれを適切な場所で使用する必要があります。

別名:フォームに完全な入力タイプが必要なのはなぜですか?ちょうどIDを渡すだけでは機能しませんか?または、FormTypeがフォームデータを表すことを意図している場合、IDが必要なのはなぜですか?また、おそらくFormDataの方がいいでしょうか?

最後に、私はこれが答えを提供していると信じていますが、簡単に確認できるように、あなたの質問は完全にカット&ペースト可能なコードを提供していませんでした。

+0

FormTypesオブジェクトのリストを渡す代わりに、IDのリストを渡すだけですか?それは多くの意味がある、私はどちらかGraphQLListを動揺させないだろう。 フォームの入力タイプに関する考えは、フォーム自体が非常に複雑で、私のリアクションコンポーネントがどのように構造化されているかと同様に、いくつかの小さなタイプから作成したいからです。フォームの型をユーザーに渡す方法がわかったら、フォームのサブタイプに同じロジックを適用できました。 – JayBauer

+0

私はここに何かがないと思う。私はそれを 'User'に渡す前にフォームを保存するために別の突然変異を必要としませんか? 私はおそらく何かが不足していることは知っていますが、私は数日間これを進めていないし、壁の上に私を運転し始めています。私はこの時点で何かが明らかであると思われる場合はお詫び申し上げます。これを理解しやすくするために私がさらに明確にできるものは何でも提供します。 – JayBauer

+0

謝罪する理由はありません!これはまだかなり最先端のものです。元のタイトル「カスタムタイプのリストを渡す」は間違っていますか?そして、実際には、フォームデータのセット(またはGraphQLの用語、オブジェクト)を渡す必要がありますか? 「フォーム」は本当に本質的なものではなく、おそらく質問のリストであると私には思われます。 –

関連する問題