在 gql apollo 查询中使用变量

using variables in gql apollo query

我有这个搜索特定产品的 gql 查询,但这个 ID 是硬编码的 如何用变量替换此 ID (product(id: "apple-imac-2021")) ?

const CURRENT_PRODUCT = gql`
    query {
        product(id: "apple-imac-2021") {
            name
            inStock
            gallery
            description
            brand
            attributes {
                name
                type
                items {
                    value
                }
            }
            prices {
                currency {
                    label
                    symbol
                }
                amount
            }
        }
    }
`;

基于这个例子:

这是解决方案,您应该在查询中执行以下操作:

query product($id : String!) {
        product(id: $id) {
            name
            inStock
            gallery
            description
            brand
            attributes {
                name
                type
                items {
                    value
                }
            }
            prices {
                currency {
                    label
                    symbol
                }
                amount
            }
        }
    }
    `;

然后在使用 useQuery() 时分配 $id 变量:

    const { loading, data } = useQuery(CURRENT_PRODUCT, {
        variables: {
            id: id,
        },
    });