有学有练才叫学习:学而不思则罔,思而不学则殆:学而不习,纸上谈兵,习而不进,画地为牢!

uniapp跳转tabbar页面数据不刷新

uni-app 炮渣日记 3周前 (11-09) 16次浏览 已收录 0个评论 扫描二维码

场景:假设跳转的页面是‘../../myselfs/myselfs’

uni.switchTab({
	url:'../../myselfs/myselfs',
})

如果需要在../../myselfs/myselfs页面中需要触发加载事件,比如通过接口获取登录用户信息

onLoad() {
	this.isLogin()//通过请求接口获取数据
},

此时跳转页面数据是不加载的,因为tabbar仅当页面真正刷新的时候才会执行除(onShow()和onHide())之外的生命周期函数,所以方法失效。

onShow() {
	this.isLogin()//可以正常执行,但每次加载都会触发
},

最优做法:在switchTab里添加加载成功事件,拿到加载后的page对象,执行需要跳转页面的方法

uni.switchTab({
	url:'../../myselfs/myselfs',
    success() {
        var page = getCurrentPages().pop();//拿到跳转后页面的page对象
        console.log(page)
        //#ifndef H5
        page.onLoad() //条件编译除H5平台下触发函数(H5下onLoad有效)
        // #endif
        //#ifdef H5
        page.isLogin() //onLoad H5下偶尔失效(直接触发方法)
        //#endif
    }
})

附:console.log(page)部分

uniapp跳转tabbar页面数据不刷新

Popup 弹出层(onLoad使用时)出错TypeError: Cannot read property ‘open’ of undefined

因为 ref 本身是作为渲染结果被创建的,在初始渲染的时候你不能访问它们 – 它们还不存在!$refs 也不是响应式的,因此你不应该试图用它在模板中做数据绑定。

所以this.$refs.popup.open()会报错

喜欢 (0)
炮渣日记
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址