凌风浮云S
凌风浮云S
  • 发布:2025-08-15 10:01
  • 更新:2025-08-15 16:25
  • 阅读:40

关于在 setup中使用 getCurrentInstance,结果返回为null的问题

分类:uni-app

import { reactive, ref, getCurrentInstance } from 'vue'

const install = getCurrentInstance()

getCurrentInstance应该像这样在代码一开始就调用,如果放到各种异步回调的函数中 就会报null

0 关注 分享

要回复文章请先登录注册

凌风浮云S

凌风浮云S (作者)

回复 DCloud_UNI_yuhe :
<template>
<view>
<button @click="formSubmit()">formSubmit</button>
</view>
</template>

<script setup>
import { getCurrentInstance } from 'vue'
//这个可以试试,就是普通的uniapp项目 也不是uniappx,也没有uts
async function formSubmit() {
const abs = await openModal()
console.log(getCurrentInstance());
}

function openModal() {
return new Promise(reslove => {
reslove(123)
})
}
</script>

<style>

</style>
2025-08-15 16:25
凌风浮云S

凌风浮云S (作者)

回复 DCloud_UNI_yuhe :
我忙完了 把项目中的这部分抽出来提供给你,
2025-08-15 14:31
DCloud_UNI_yuhe

DCloud_UNI_yuhe

回复 凌风浮云S :
你提供一下完整的可以运行的测试代码
2025-08-15 14:28
凌风浮云S

凌风浮云S (作者)

回复 DCloud_UNI_yuhe :
在我的if中直接调用 console.log(getCurrentInstance()),打印出来是 null。如果是一开始就在script中直接像hook那样调用 那样子的话就是有值的
2025-08-15 13:57
凌风浮云S

凌风浮云S (作者)

回复 DCloud_UNI_yuhe :
HBuilderx 4.75
运行在uniapp的内置浏览器

```vue

function formValid() {
let flag = true
const phoneValid = validate.phone(formData.value.phone)
validRule.phone.value = !phoneValid.success
validRule.phone.message = phoneValid.message

return phoneValid.success
}

async function formSubmit() {
if (formValid()) {
const validResult = await getCurrentInstance().appContext.config.globalProperties.$swiperVerificate({ phone: formData.value.phone })

if (validResult.res.code == 200) {
uni.setStorageSync(USER_PHONE, formData.value.phone)
uni.navigateTo({
url: '/pages/login/captcha?data=' + JSON.stringify(validResult.data)
})
} else if (validResult.res.code == 508) {
uni.navigateTo({
url: '/pages/login/captcha?data=' + JSON.stringify(validResult.data),
complete: () => {
uni.showToast({ title: validResult.res.msg, icon: 'none', duration: 2500, })
}
})
} else {
uni.showToast({ title: validResult.res.msg, icon: 'none', duration: 2500, })
}
}
}
```
2025-08-15 13:55
DCloud_UNI_yuhe

DCloud_UNI_yuhe

你好,请说明hbuilderx版本,运行平台和可以复现的代码
2025-08-15 11:23