Apollo 客户端不匹配 UserInputError

Apollo client not paring UserInputError

我从 Apollo 服务器抛出一个 UserInputError,playground 正确地显示了带有扩展和异常的错误,但是 apollo 客户端没有显示扩展和异常。

将错误字符串化,发现,我们可以使用 error.graphQlErrors[0] 访问它,奇怪的是它没有写在文档中的任何地方。这确实给我带来了很多麻烦

现有答案对我有用。只是提供更多详细信息以帮助未来的 Google 员工。

在 apollo-server 后端,我们抛出一个错误:

throw new UserInputError("Form Arguments invalid", {
    field: "name",
});

在 apollo-client 前端,我们发现了这个错误:

try {
    // Perform GraphQL mutation.
} catch (error) {
    // How do we get the "field" extra info?
}

正如前面的答案所说,有一些 graphQlErrors 属性 包含额外的信息。所以在这个例子中,我可以访问 error.graphQlErrors[0].extensions.field 来获取“name”值。