问题描述
我有一个供匿名用户使用的购物车,并希望将购物车通过突变传递到数据库中。我创建了一个测试,但不能一次传递多个值。我最终得到了一个类似的错误......
[GraphQL error]: Message: Variable "$id" got invalid value ["87b7dsfg6ds78ga","36b34b5hb5hjbj23b","36b34b5hb5hjbj23b"]; ID cannot represent value: ["87b7dsfg6ds78ga","36b34b5hb5hjbj23b"],
这是我的突变:
const ADD_TO_CART_MUTATION = gql`
mutation ADD_TO_CART_MUTATION($id: ID!) {
addToCart(productId: $id) {
id
}
}
`;
export default function SendToCartButton() {
var cartItems = useReactiveVar(cartItemsVar);
console.log(cartItems)
const [sendToCart] = useMutation(ADD_TO_CART_MUTATION,{
variables: { id: cartItems },refetchQueries: [{ query: CURRENT_USER_QUERY }],});
return (
<div className="add-to-cart-button" >
<CartButton onClick={sendToCart}>
Send To Cart db
</CartButton>
</div>
);
}
我尝试将突变配置为 [ID]!但得到:
[GraphQL error]: Message: Variable "$id" of type "[ID!]" used in position expecting type "ID".,Location: [object Object],[object Object],Path: undefined
谁能解释一下我需要做什么?
谢谢!
解决方法
利用[ID!]!
- 指出输入将是一个不能有任何空条目且
$id
不能为空的类型 ID 列表
const ADD_TO_CART_MUTATION = gql`
mutation ADD_TO_CART_MUTATION($id: [ID!]!) {
...
}
`;