Error in onShow hook (Promise/async): "TypeError: Cannot read property 'globalData' of undefined"
时间: 2023-07-04 12:29:14 浏览: 1143
这个错误提示说明在你的代码中尝试访问`globalData`时,`this`指向的对象未定义,因此无法访问`globalData`属性。这通常是因为你的代码中没有正确设置`this`指向的对象,导致`this`指向了`undefined`。
为了解决这个问题,你可以尝试以下几个步骤:
1. 确保你在使用`globalData`之前,在`App.vue`中正确定义了`globalData`属性。例如:
```javascript
export default {
globalData: {
userInfo: null
},
onLaunch() {
// ...
}
}
```
2. 确保你在使用`getApp()`方法来获取`globalData`之前,已经定义了一个全局的`uni-app`实例。例如,在`main.js`文件中使用`Vue`实例来创建一个全局的`uni-app`实例:
```javascript
import Vue from 'vue'
import App from './App'
const app = new Vue(App)
app.$mount()
export default app
```
3. 如果你是在一个异步函数中使用`getApp().globalData`,则需要使用`async/await`或`Promise`来等待`uni-app`实例初始化完成。例如,在`onLoad`生命周期函数中使用`async/await`:
```javascript
export default {
onLoad: async function () {
// 等待uni-app实例初始化完成
await new Promise(resolve => getApp().$nextTick(resolve))
// 获取globalData中的userInfo
const userInfo = getApp().globalData.userInfo
// 使用userInfo进行页面渲染
}
}
```
通过以上步骤,你应该能够解决这个错误,并正确访问到`globalData`属性。
阅读全文
相关推荐


















