0
こんにちは私は、どのように突然変異を実行するとgraphqlとリレーでユーザーエラーを処理するかを考えようとしています。 createUser変異のための私のgraphql実装ですGraphQL、リレー:エラー処理
:
mutationWithClientMutationId({
name: 'CreateUser',
inputFields: {
email: { type: new GraphQLNonNull(GraphQLString) },
},
outputFields: {
user: { type: userType },
error: {type: errorType},
},
mutateAndGetPayload: async (attrs, { viewer }) => {
try {
// Try to create a user
} catch(err) {
// err.toObject has the shape required by the error type
return { error: err.toObject() };
}
}
});
そして、これが私のリレー突然変異クラスです
class CreateUserMutation extends Relay.Mutation {
getMutation() {
return Relay.QL`mutation { createUser }`;
}
getVariables() {
return {
email: this.props.email,
};
}
getFatQuery() {
return Relay.QL`
fragment on CreateUserPayload {
error
}
`;
}
getConfigs() {
return [{
type: "FIELDS_CHANGE",
fieldIDs: {
error: ????,
}
}];
}
}
私は、またgraphqlでエラーをキャッチしないことです別のアプローチを試してみましたリレーの突然変異を実行するときにonFailureを聞くが、私のエラーを得るためにそのような何かをしなければならなかったreturn error.getError().source.errors[0]
しかし、私はより良いエラータイプを返すアプローチが好きだと思いますが、私はそれを働かせるために何か助けてください