【发布时间】:2019-03-23 05:54:47
【问题描述】:
我的流星/反应/阿波罗(带升压)项目有问题。当我从服务器查询数据时,它会将 __typename 添加到查询中的每个对象和子对象中,但在我的情况下,它会产生一个主要问题,因为我通常会重用这些数据以将它们发送到其他突变。现在另一个突变告诉我有一个错误,因为 __typename 字段未在我的 graphql 架构中定义。
我尝试通过将 addTypename: false 字段添加到我的 apollo 客户端来进行修复,但它没有改变任何东西(注意我正在使用 apollo boost,这可能是它无法正常工作的原因):
const client = new ApolloClient({
uri: Meteor.absoluteUrl('graphql'),
addTypename: false,
request: operation =>
operation.setContext(() => ({
headers: {
authorization: Accounts._storedLoginToken()
}
}))
})
此外,即使它有效,它似乎也不是很优化。在我看来,在查询结果中添加了一个字段,我很惊讶没有在网上找到任何明确的解决方案。一些建议的解决方案:
- 在客户端手动过滤
- 将中间件添加到 apollo
- 将 __typename 字段添加到我的所有架构中...
但它们似乎都不适合阿波罗为查询带来的“简单”。我希望提供一个更简单、更合乎逻辑的解决方案,但到目前为止,还没有找到任何解决方案。
【问题讨论】:
标签: reactjs graphql apollo apollo-client apollo-boost