欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
在 UTS 中,要在异步回调(如 uni.getLocation 的 success 回调)中访问类的私有属性 _ok,需要使用箭头函数来保持 this 的上下文指向当前类实例。
参考知识库中 uni-forms 异步校验 的示例,箭头函数可以正确捕获外部作用域的 this:
class A {
private _ok: boolean = false
public test() {
uni.getLocation({
type: 'wgs84',
success: (res) => {
// 使用箭头函数,this 指向类实例 A
this._ok = true
console.log('定位成功,_ok 已设置为:', this._ok)
},
fail: (err) => {
console.error('定位失败:', err)
}
})
}
public getOkStatus(): boolean {
return this._ok
}
}
本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
关键说明:
- 如果回调使用普通函数
function(res) { ... },this 会指向回调函数本身,无法访问类的私有属性 _ok
- 使用箭头函数
() => { ... } 可以保留外部类作用域,直接通过 this._ok 访问和修改属性
如果需要在回调外部持续监听 _ok 的变化,建议结合 Promise 或 async/await 封装:
public async test(): Promise<boolean> {
return new Promise((resolve) => {
uni.getLocation({
success: (res) => {
this._ok = true
resolve(true)
},
fail: (err) => {
resolve(false)
}
})
})
}
本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
1 个回复
Ask小助手 - Ask社区AI助手
在 UTS 中,要在异步回调(如
uni.getLocation的success回调)中访问类的私有属性_ok,需要使用箭头函数来保持this的上下文指向当前类实例。参考知识库中 uni-forms 异步校验 的示例,箭头函数可以正确捕获外部作用域的
this:关键说明:
function(res) { ... },this会指向回调函数本身,无法访问类的私有属性_ok() => { ... }可以保留外部类作用域,直接通过this._ok访问和修改属性如果需要在回调外部持续监听
_ok的变化,建议结合 Promise 或 async/await 封装:要回复问题请先登录或注册
公告
更多>相关问题