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

React Native导入heroicons报错:Unexpected token '{' 求助

解决React Native中react-native-heroicons导入时的"Unexpected token '{'"错误

你遇到的Unexpected token '{'. import call expects exactly one argument错误,通常是Babel未正确处理ES模块解构导入,或是当前react-native-heroicons版本与你的Expo/React Native环境不兼容导致的。结合你的依赖配置和代码,以下是针对性解决方案:

方案1:调整Babel配置以支持解构导入

在项目根目录的babel.config.js中,添加必要插件确保Babel能解析解构语法:

module.exports = function(api) {
  api.cache(true);
  return {
    presets: ['babel-preset-expo'],
    plugins: [
      'tailwindcss-react-native/babel',
      '@babel/plugin-proposal-export-namespace-from',
      '@babel/plugin-proposal-object-rest-spread'
    ],
  };
};

方案2:更换导入方式

尝试调整导入语法,适配不同版本的模块导出规则:

// 方式1:默认导入后解构
import HeroIconsOutline from "react-native-heroicons/outline";
const { UserIcon, ChevronDownIcon, SearchIcon, AdjustmentsIcon } = HeroIconsOutline;

// 方式2:直接导入单个图标文件
import UserIcon from "react-native-heroicons/outline/UserIcon";
import ChevronDownIcon from "react-native-heroicons/outline/ChevronDownIcon";

方案3:降级react-native-heroicons版本

你的项目使用Expo 46(对应React Native 0.69),react-native-heroicons 2.x对旧RN版本支持有限,降级到1.x版本可解决兼容问题:

npm install react-native-heroicons@1.3.0
# 或使用yarn
yarn add react-native-heroicons@1.3.0

降级后可保持原导入方式不变。

方案4:清除缓存并重新构建

Expo缓存可能导致模块解析异常,执行以下命令重置环境:

# 清除Expo缓存并重启项目
expo r -c

# 可选:清除npm缓存后重装依赖
npm cache clean --force
npm install

额外代码修复提示

你的HomeScreen代码中,<ChevronDownIcon>被嵌套在<Text>标签内,React Native不允许Text组件直接包裹非Text元素,需调整结构:

// 修改前
<Text className="font-bold text-xl">
    Current Location
    <ChevronDownIcon size={20} color="#00CCBB"/>
</Text>

// 修改后
<View className="flex-row items-center">
    <Text className="font-bold text-xl">Current Location</Text>
    <ChevronDownIcon size={20} color="#00CCBB"/>
</View>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 07:06:22