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

使用Next.js+Turbo Pack开发时移动端出现TypeError: r.at is not a function问题求助

解决方案:iPhone Chrome中Chakra UI Avatar组件触发r.at is not a function错误

问题原因

Array.prototype.at()是ES2022新增的API,iPhone设备上的旧版Chrome(版本低于92)不支持该语法。Turbo Pack默认未对第三方依赖(如Chakra UI)的新语法进行转译,而桌面端开发者工具模拟的是较新的浏览器环境,因此不会出现问题,最终定位到Chakra UI的Avatar组件内部使用了该API。

解决方法

方法1:配置Next.js转译Chakra UI依赖

在next.config.js中添加transpilePackages配置,强制Turbo Pack转译Chakra UI相关包:

/** @type {import('next').NextConfig} */
const nextConfig = {
  transpilePackages: ['@chakra-ui/react', '@chakra-ui/system', '@chakra-ui/avatar'],
  experimental: {
    turbo: true
  }
};

module.exports = nextConfig;

方法2:添加API Polyfill

在你的_app.js或_app.tsx入口文件顶部引入Array.prototype.at()的polyfill:

import 'core-js/es/array/at';

需要先安装core-js依赖:

npm install core-js
# 或
yarn add core-js

方法3:升级Chakra UI版本

检查并升级Chakra UI到最新稳定版,官方可能已修复该兼容性问题:

npm update @chakra-ui/react
# 或
yarn upgrade @chakra-ui/react

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:50:03