私のアプリの目標は、記入して編集するフォームのリストを保存して呼び出すことができるようにすることです。 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.
は... FormType
はGraphQLInputObjectType
にする必要があることを意味します。それに応じて変更すると、エラーが表示されます。
Error: Mutation.saveForm(form:) argument type must be Output Type but got: FormType.
実際には何も変わりません。誰もこの問題の実際の例を知っていますか?
FormTypesオブジェクトのリストを渡す代わりに、IDのリストを渡すだけですか?それは多くの意味がある、私はどちらかGraphQLListを動揺させないだろう。 フォームの入力タイプに関する考えは、フォーム自体が非常に複雑で、私のリアクションコンポーネントがどのように構造化されているかと同様に、いくつかの小さなタイプから作成したいからです。フォームの型をユーザーに渡す方法がわかったら、フォームのサブタイプに同じロジックを適用できました。 – JayBauer
私はここに何かがないと思う。私はそれを 'User'に渡す前にフォームを保存するために別の突然変異を必要としませんか? 私はおそらく何かが不足していることは知っていますが、私は数日間これを進めていないし、壁の上に私を運転し始めています。私はこの時点で何かが明らかであると思われる場合はお詫び申し上げます。これを理解しやすくするために私がさらに明確にできるものは何でも提供します。 – JayBauer
謝罪する理由はありません!これはまだかなり最先端のものです。元のタイトル「カスタムタイプのリストを渡す」は間違っていますか?そして、実際には、フォームデータのセット(またはGraphQLの用語、オブジェクト)を渡す必要がありますか? 「フォーム」は本当に本質的なものではなく、おそらく質問のリストであると私には思われます。 –