uni-app使用抖音pay-button组件报错 getGoodsInfo should be object but got undefined

发布于 1周前 作者 htzhanglong 来自 Uni-App

uni-app使用抖音pay-button组件报错 getGoodsInfo should be object but got undefined

示例代码:

<p>&lt;pay-button class="paypal-button" :biz-line="1" :mode="2" :goods-type="1" :goods-id="products[0].dyOutId" @getgoodsinfo="getGoodsInfo" @placeorder="userLogin" @pay="handlePay" @error="bindError" @getExtraInfo="getExtraInfo"&gt;&lt;/pay-button&gt;</p>

操作步骤:

  • 点击立即抢购按钮

## 预期结果:


- 点击按钮跳转到提单页面

实际结果:

  • USER_CUSTOM_ERROR: getGoodsInfo should be object, but got undefined USER_CUSTOM_ERROR: getGoodsInfo should be object, but got undefined

## bug描述:


点击button控制台一直输出USER_CUSTOM_ERROR: getGoodsInfo should be object, but got undefined USER_CUSTOM_ERROR: getGoodsInfo should be object, but got undefined,不能跳转到提单页面

Image


4 回复

检查下绑定的数据类型是否正确,如确认框架问题,请提供可复现工程。


因为你的问题涉及具体的业务场景,请提供一个 uni-app 复现工程,里面只包含1~2个 pages,页面不包含实际业务逻辑,不包含 css 样式,编写必要的问题注释。

本帖内容和 https://ask.dcloud.net.cn/question/189088 一致,本帖锁定,如果有相似问题请开新贴交流

在使用 uni-app 开发抖音小程序时,如果你在使用 pay-button 组件时遇到 getGoodsInfo should be object but got undefined 的错误,通常是因为 getGoodsInfo 方法返回的值不符合预期。getGoodsInfo 方法需要返回一个对象,但实际返回了 undefined

解决方法

  1. 检查 getGoodsInfo 方法: 确保 getGoodsInfo 方法返回的是一个有效的对象。这个方法通常用于获取商品信息,返回的对象应包含商品的相关信息,如 goods_idgoods_nameprice 等。

    methods: {
      getGoodsInfo() {
        return {
          goods_id: '123456',
          goods_name: '示例商品',
          price: 100, // 单位:分
          // 其他必要的商品信息
        };
      }
    }
  2. 确保 getGoodsInfo 方法被正确调用: 在 pay-button 组件中,确保 getGoodsInfo 方法被正确绑定和调用。

    <pay-button :getGoodsInfo="getGoodsInfo"></pay-button>
  3. 检查 pay-button 组件的版本和文档: 确保你使用的 pay-button 组件版本与当前抖音小程序的 API 版本兼容。有时,API 的更新可能会导致某些方法或属性的行为发生变化。

  4. 调试和日志输出: 在 getGoodsInfo 方法中添加日志输出,确保方法被调用并且返回了正确的对象。

    methods: {
      getGoodsInfo() {
        const goodsInfo = {
          goods_id: '123456',
          goods_name: '示例商品',
          price: 100,
        };
        console.log('getGoodsInfo:', goodsInfo);
        return goodsInfo;
      }
    }
  5. 检查网络请求或异步操作: 如果 getGoodsInfo 方法中涉及到网络请求或异步操作,确保在返回商品信息之前,这些操作已经完成。可以使用 Promiseasync/await 来处理异步操作。

    methods: {
      async getGoodsInfo() {
        const response = await someAsyncFunctionToGetGoodsInfo();
        return {
          goods_id: response.goods_id,
          goods_name: response.goods_name,
          price: response.price,
        };
      }
    }
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!