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

组件库(Storybook)导出react-aria TimeField在前端使用时报错

解决TimeField组件引入前端项目时的TypeError问题

这个错误Uncaught TypeError: $kgI3C$swchelperscjs_class_private_field_initcjs._ is not a function通常由依赖版本冲突或组件库打包配置问题导致,以下是针对性的解决步骤:

  • 检查peer依赖版本:确认前端项目中@internationalized/date的版本满足组件库要求的>=3.5.0。执行npm list @internationalized/date查看项目当前版本,若版本过低则升级:npm install @internationalized/date@^3.5.0。
  • 调整组件库打包配置:确保组件库打包时将react-aria、react-stately设为外部依赖(external),避免把这些库打包进组件库产物中,防止和前端项目的同依赖版本冲突。比如在Rollup或Vite配置中添加:
    // Rollup示例
    external: ['react-aria', 'react-stately', '@internationalized/date']
    // Vite示例
    build: {
      rollupOptions: {
        external: ['react-aria', 'react-stately', '@internationalized/date']
      }
    }
    
  • 统一依赖版本:检查前端项目和组件库中react-aria、react-stately的版本是否兼容。组件库用的是react-aria@^3.29.1、react-stately@^3.27.1,确保前端项目安装的版本在该范围内,避免跨大版本差异。若项目版本不符,可执行:npm install react-aria@^3.29.1 react-stately@^3.27.1。
  • 清理缓存并重新构建:
    1. 组件库端:删除node_modules、dist文件夹,执行npm install重新安装依赖,再重新打包组件库。
    2. 前端项目端:删除node_modules、package-lock.json(或yarn.lock),执行npm install重新安装依赖,同时清理项目打包缓存(比如Vite的.vite文件夹、Webpack的dist缓存)。
  • 检查SWC相关配置:如果组件库和前端项目使用了不同版本的SWC打包工具,可能导致私有字段辅助函数不兼容。尝试统一两者的SWC版本,或在组件库打包时禁用SWC的私有字段转换,改用Babel处理(若适用)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:57:13