我希望能够在GraphQL查询的返回值上使用map
和filter
函数,但是尽管被指定为数组,但查询结果仍为对象格式。
我当前正在使用react-apollo-hooks
:
const { data: cartData, error: cartError, loading: cartLoading } = useQuery(CART_INFO)
我在前端指定了gql
,如下所示:
export const CART_INFO = gql`
query {
cart {
id
quantity
startDate
endDate
post {
title
image
price
}
user {
firstName
}
}
}
`
这是公开给前端的模式:
cart: [CartItem!]!
最后是解析器:
cart(parent, args, { prisma, request}, info){
const userId = getUserId(request)
const opArgs = {
where: {
user: {
id: userId
}
}
}
return prisma.query.cartItems(opArgs, info)
},
当我console.log
返回cartData
或通过游乐场运行查询时,它返回的结果看起来像是包裹在[]
括号中的数组,但是当我{{1 }}结果,表明它是一个对象。这意味着typeof
或map
函数将不起作用。