编译H5成功之后 uni-app部署到环境上之后页面无法正常打开显示Cannot convert a BigInt value to a number

编译H5成功之后 uni-app部署到环境上之后页面无法正常打开显示Cannot convert a BigInt value to a number

类别 信息
产品分类 uniapp/App
PC开发环境 Mac
PC开发环境版本 macOS Ventura版本13.7.6 (22H625)
HBuilderX类型 正式
HBuilderX版本 4.75
手机系统 iOS
手机系统版本 iOS 18
手机厂商 苹果
手机机型 iphone16
页面类型 nvue
Vue版本 vue2
打包方式 离线
项目创建方式 HBuilderX

操作步骤:

依赖一个带有bigint的插件,然后编译成功之后,部署上线会报错
TypeError: Cannot convert a BigInt value to a number
at pow (<anonymous>)

预期结果:

无bigint错误提示

实际结果:

TypeError: Cannot convert a BigInt value to a number
at pow (<anonymous>)

bug描述:

编译H5成功之后,部署到环境上之后,页面无法正常打开,显示Cannot convert a BigInt value to a number
TypeError: Cannot convert a BigInt value to a number
at pow (<anonymous>)


更多关于编译H5成功之后 uni-app部署到环境上之后页面无法正常打开显示Cannot convert a BigInt value to a number的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

更多关于编译H5成功之后 uni-app部署到环境上之后页面无法正常打开显示Cannot convert a BigInt value to a number的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个典型的BigInt类型兼容性问题。在iOS Safari浏览器中,BigInt与Number类型的隐式转换会导致运行时错误。

问题分析:

  • 错误发生在pow函数中,表明有数学运算涉及BigInt与Number的混合计算
  • iOS Safari对BigInt的支持与其他浏览器存在差异
  • 依赖的插件可能直接返回BigInt类型或进行了不兼容的类型转换

解决方案:

  1. 检查插件兼容性

    • 确认插件是否明确支持H5环境
    • 查看插件文档是否有针对BigInt的特殊处理说明
  2. 类型转换处理 在调用插件API后,手动进行类型转换:

    // 将BigInt显式转换为Number
    const result = Number(bigIntValue);
    // 或使用BigInt.toString()后再转换
    const result = parseInt(bigIntValue.toString());
    
  3. 环境检测与降级

    // 检测是否支持BigInt
    if (typeof BigInt === 'undefined') {
      // 使用兼容方案或提示用户
    }
回到顶部