1977474741 / spa-custom-hooks

💯 业务层自定义钩子(异步任务通知解决方案),支持各种小程序和Vue架构(uni-app、wepy、mpvue等)

Home Page:https://github.com/1977474741/spa-custom-hooks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

this指向问题

doumuxie opened this issue · comments

uniapp 微信小程序项目

我在 main.js 配置了 diyHook

import CustomHook from 'spa-custom-hooks';
const diyHooks = {
  'TokenLoad':{
    name:'TokenLoad',
    watchKey: ['token'],
    deep: true,
    onUpdate(val){
      //userinfo里的nickName非空则表示命中此钩子
      return !!val;
    }
  }
}

Vue.use(CustomHook ,diyHooks,store)

然后在 App.vue中登录将token 置入 store内

 wxLogin({
              jsCode: res.code,
              inviteCode: inviteCode || ''
            }).then(res=>{
              if(res.success){
                that.$store.commit('setToken', res.data.token);
                console.log("this.$store.getToken", that.$store.getters.getToken)
              } else {
                uni.showToast({
                  icon:"error",
                  title:'登录失败'
                })
              }
            })

当我第一页面加载的时候,onTokenLoad 被调用 这里这时候正常的 this指向也没问题

但是当我切换tab页面后,第二页面加载的时候 onTokenLoad 中 的this调用当前vue下的方法或者值都是 underfine

请问有没有遇到过这种问题呢? 在第二页面中的onLoad 方法中的this都是正常的。

看下onTokenLoad页面的代码

onTokenLoad() {
this.dataList = []
this.getOrderList()
},
没什么特别的

vue2是吧,我复现一下试试

复现不了,你加我微信发个demo我看看,ZZZQQQOOO

晚点我搞一下demo试一下 好了加你哈

晚点我搞一下demo试一下 好了加你哈

ok

找到原因了吗

已解决,钩子定义的时候无需额外 使用 Load、Show 等,使用的时候自己组合就行。感谢大佬