You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NextJS函数调用无法接收传入的cartId参数问题

Shopify购物车addItemToCart函数cartId返回undefined的解决办法

问题根源很直接:你调用addItemToCart时传入的对象属性是savedCartId,但函数定义里解构的是cartId——对象解构是严格按属性名匹配的,所以函数找不到cartId这个属性,自然返回undefined,而itemId和quantity因为属性名完全对应,所以能正常获取。

修复方案(二选一即可)

方案1:修改调用时的属性名

在addToCart函数里调用addItemToCart的时候,把savedCartId重命名为cartId:

const shopifyResponse = await addItemToCart({
  itemId,
  cartId: savedCartId, // 这里将属性名改为cartId,和函数解构的变量名对应
  quantity
})

方案2:修改函数的解构参数

如果不想改调用代码,可以调整addItemToCart的解构逻辑,把传入的savedCartId映射到cartId变量:

export const addItemToCart = async ({ itemId, savedCartId: cartId, quantity }) => {
    console.log(`Item Id: ${itemId}`)
    console.log(`Cart Id: ${cartId}`) // 现在能正确拿到值了
    console.log(`Quantity: ${quantity}`)

    try {
      const shopifyResponse = await postToShopify({
        query: `/* 原有查询内容不变 */`,
        variables: {
            cartId, // 这里依然用cartId,不需要修改
          lines: [
            {
              merchandiseId: itemId,
              quantity,
            },
          ],
        },
      });
  
      return shopifyResponse;
    } catch (error) {
      console.log(error);
    }
  };

修改后再测试,cartId就能正确获取到localStorage里存储的值了。

内容的提问来源于stack exchange,提问作者Zenithian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 01:31:08