为什么我在 useQuery 的所有数组对象中为某个字段获取相同的值?

Why I am I getting the same value for a field in all of my array objects for useQuery?

我有一个 useQuery returns 插入第一项的数据。对于上下文,我有一个包含杂货产品的电子商务网站,假设我添加了一个数量为 4 的苹果。接下来,当我添加另一个数量为 10 的订单时,它会正确添加到数据库中,并且我在 apollo playground 中得到了正确的结果。但是,当我在 Apollo 客户端中使用以下代码提取数据时,它具有该用户的所有订单,订单 ID 不同,但具有为苹果制作的第一笔订单的数量。

const { loading, error, data } = useQuery(queries.GET_USER_ORDERS, {
            fetchPolicy: "cache-and-network",
            variables: {
                userId: currentUser.uid,
            },
        });

Graphql 查询:

const GET_USER_ORDERS = gql`
    query Query($userId: String) {
        userOrders(userId: $userId) {
            _id
            userId
            products {
                _id
                name
                price
                orderedQuantity
            }
            status
            createdAt
            flag
            total
            
        }
    }
 `;

基本上我看到了所有产品,但每个产品的数量为 4 个。我该如何解决这个问题?

更改提取策略

fetchPolicy: "no-cache",

同时检查您是否在新订单下单变更后更新此查询结果(如果您是,则可能会导致使用错误的值进行更新) 如果你设置 fetchPolicy: "no-cache" 你不必在 mutation

后更新查询结果