无法命中onUpdate钩子
QAQLC opened this issue · 5 comments
QAQLC commented
export const globalData = {
token: '',
}
CustomHook.install(
{
Token: {
name: 'Token',
watchKey: 'token',
onUpdate(token: string | undefined) {
console.log('onUpdate', token)
return !!token
},
},
},
globalData
)
在代码中将globalData中的token清空
getApp().globalData.token = ''
预期会命中onUpdate钩子,结果并没有
1977474741 commented
是console没打印吗?token清空之前是啥
QAQLC commented
是console没打印吗?token清空之前是啥
token 就是正常的jwt字符串,是的,console不打印。
代码精简逻辑,app.ts onLaunch中获取token并给通过如下代码赋值
onLaunch() {
const token = (this.globalData.token = getToken())
if (!token) {
this.doLogin().then(token => {
const app = getApp<IAppOption>()
app.globalData.token = token
})
}
},
其他页面通过getApp().globalData.token = '' 将token情况,onUpdate钩子无法命中
1977474741 commented
清空后下次进入页面涉及token的钩子依旧执行了吗?比如onLoadToken、onShowToken
QAQLC commented
清空后下次进入页面涉及token的钩子依旧执行了吗?比如onLoadToken、onShowToken
这个到没有在意,我已经改用proxy自己实现了。
我不清楚是不是我使用姿势问题,我翻看了issue竟然没有人提,这个问题。按理说这个问题,应该很容易暴露出来才对,代码其实没有什么东西就是如下
export const globalData = {
token: '',
}
CustomHook.install(
{
Token: {
name: 'Token',
watchKey: 'token',
onUpdate(token) {
console.log('onUpdate', token)
return !!token
},
},
},
globalData
)
在控制台将值清空,很容易就复现了
getApp().globalData.token = ''
1977474741 commented
你清空是做什么用,不就是在下次执行涉及Token的钩子的时候不再执行吗,是原生微信小程序是吧?