uni-app 【报Bug】uni is not defined 再次出现

发布于 1周前 作者 yibo5220 来自 Uni-App

uni-app 【报Bug】uni is not defined 再次出现

项目信息 详细信息
产品分类 uniapp/App
PC开发环境操作系统 Mac
PC开发环境操作系统版本号 16
HBuilderX类型 正式
HBuilderX版本号 3.99
手机系统 全部
手机厂商 华为
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

测试过的手机:

操作步骤:

uni-admin  项目中 leftWindow.vue 引用

import { store, mutations } from ‘@/uni_modules/uni-id-pages/common/store.js’


### 预期结果:

正常引入


### 实际结果:

报错 uni is not defined


### bug描述:

我又遇到这个问题了,import js ,js内无uni https://ask.dcloud.net.cn/question/125039


1 回复

uni-app 开发过程中,出现 uni is not defined 的错误通常是由于以下几种原因导致的。以下是一些常见的解决方案:

1. 确保正确引入 uni-app 的 API

  • uni-app 的 API 是全局可用的,通常情况下不需要额外引入。如果你在某个文件中使用了 uni,确保该文件是在 uni-app 的环境中运行的。
  • 如果你在非 uni-app 环境(如普通的网页)中使用了 uni,那么 uni 确实会是未定义的。

2. 检查运行环境

  • 确保你正在 uni-app 的运行环境中运行代码。uni 对象只在 uni-app 的 H5、小程序、App 等环境中存在。如果你在普通的浏览器环境中运行代码,uni 将不会被定义。

3. 检查编译配置

  • 如果你使用了某些自定义的编译配置,确保没有误删或覆盖了 uni-app 的核心配置。检查 vue.config.js 或其他配置文件,确保没有影响到 uni-app 的正常运行。

4. 检查代码执行时机

  • 如果你在某些生命周期钩子或异步回调中使用了 uni,确保代码执行的时机是正确的。例如,在 onLoad 生命周期中使用 uni 是安全的,但在某些异步回调中,如果回调执行时 uni 还未初始化,可能会导致 uni is not defined 的错误。

5. 检查第三方库

  • 如果你使用了某些第三方库,确保这些库与 uni-app 兼容。某些库可能会修改全局对象或导致 uni 对象丢失。

6. 清除缓存并重新编译

  • 有时候,缓存问题也可能导致奇怪的错误。尝试清除项目缓存,删除 node_modulesdist 目录,然后重新安装依赖并编译项目。
rm -rf node_modules
rm -rf dist
npm install
npm run dev

7. 检查 uni-app 版本

  • 确保你使用的 uni-app 版本是最新的,或者至少是稳定的版本。某些旧版本可能存在 bug,升级到最新版本可能会解决问题。

8. 使用 uni 前进行判断

  • 如果你不确定 uni 是否已经定义,可以在使用前进行判断:
if (typeof uni !== 'undefined') {
    uni.showToast({
        title: 'Hello, uni-app!'
    });
} else {
    console.error('uni is not defined');
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!