对来自GraphQL的响应的分析不正确
我不熟悉对来自GraphQL的响应的分析不正确,graphql,apollo,react-apollo,apollo-client,Graphql,Apollo,React Apollo,Apollo Client,我不熟悉GraphQL,并且在围绕Next.js构建的项目中使用它,并使用Redux进行状态管理。我有一个相当复杂的查询,它在GraphiQL界面中产生了非常好的结果。 即使在DevTools的Network选项卡中,/graphql调用似乎根据查询中要求的结构有一个完美的响应。但是,ApolloProvider在状态(Redux Store)中提供的数据正在以一种奇怪的方式被解析。我看到很多关键点(所有对象嵌套) 迷路了)就像 在这里,如果我尝试记录this.props.data,所有数据似乎
GraphQL
,并且在围绕Next.js
构建的项目中使用它,并使用Redux
进行状态管理。我有一个相当复杂的查询,它在GraphiQL
界面中产生了非常好的结果。
即使在DevTools
的Network
选项卡中,/graphql
调用似乎根据查询中要求的结构有一个完美的响应。但是,ApolloProvider
在状态(Redux Store
)中提供的数据正在以一种奇怪的方式被解析。我看到很多关键点(所有对象嵌套)
迷路了)就像
在这里,如果我尝试记录this.props.data
,所有数据似乎都正常。我错过了什么?如何将正确的数据放入Redux
存储
我的客户端创建代码如下所示:
function create() {
return new ApolloClient({
ssrMode: !process.browser,
networkInterface: createNetworkInterface({
uri: 'http://localhost:4000/graphql',
headers: {
accept: 'application/json',
'content-type': 'application/json',
'cache-control': 'no-cache'
},
opts: {
credentials: 'same-origin',
},
}),
});
}
如果需要任何其他信息,请告诉我。谢谢这是预期的行为。Apollo自动规范化通过查询接收的数据——您可以阅读有关该过程的更多详细信息 要访问查询提供的数据,您需要使用Apollo提供的
graphql
HOC组件。这与Redux的connect
HOC非常相似,允许您将从特定查询接收的任何数据映射到包装组件中的道具
如果您需要对一个组件使用两个HOC,那么集成它们也相当简单。您可以阅读有关将Redux与Apollo集成的更多信息
export default graphql(fetchDataQuery, {
props: ({ data }) => ({
data,
}),
})(ComponentName);
function create() {
return new ApolloClient({
ssrMode: !process.browser,
networkInterface: createNetworkInterface({
uri: 'http://localhost:4000/graphql',
headers: {
accept: 'application/json',
'content-type': 'application/json',
'cache-control': 'no-cache'
},
opts: {
credentials: 'same-origin',
},
}),
});
}