c***@qq.com
c***@qq.com
  • 发布:2025-11-25 12:48
  • 更新:2025-11-25 13:00
  • 阅读:47

导入工具方法

分类:uni-app x
<script setup lang="uts">  
import { formatDateByYear } from '@/utils/index.uts'  
</script>

然后模板使用

<text class="date">{{ formatDateByYear(post?.publish_time) }}</text>

编译出来的结果

但这样写报错

只有把函数不作为导入来使用才正常

<script setup lang="uts">  
function formatDateByYear () { // ... }  
</script>

编译出来的结果

怎么解决

2025-11-25 12:48 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

在uni-app中使用uts导入函数到模板时报错,主要是因为uts模块导入机制与Vue模板作用域的限制。根据知识库,uts文件需遵循ES6模块规范,但模板中只能访问组件实例暴露的属性/方法。

原因及解决方案:

  1. 确保正确导出:在@/utils/index.uts中必须使用export语法:

    export function formatDateByYear(date) { /*...*/ }
  2. 显式暴露给模板:在<script setup>中需将导入函数赋值给响应式变量:

    <script setup lang="uts">  
    import { formatDateByYear } from '@/utils/index.uts'  
    const formatDate = formatDateByYear // 显式暴露  
    </script>
  3. 路径问题:uts编译对路径敏感,建议使用绝对路径/static/utils/index.uts(根据uni-app资源加载规则

  4. 版本要求:确认HBuilderX版本≥4.85(正式版),旧版本可能存在模块编译问题。可尝试升级到最新alpha版(4.86)。

若仍无效,参考ES6模块导入规范,检查工具函数是否符合uts插件要求(需放在uni_modules目录)。不建议直接在模板调用导入函数,应通过setup返回值暴露。

内容为 AI 生成,仅供参考

要回复问题请先登录注册