记录在微信小程序 组件中使用监听observers

记录在微信小程序 组件中使用监听observers,第1张

在编写表单的时候,因为有一个省市区的选择器重复用到,所以想拎出来当一个组件,同时后面又增加需求,这个表单页面展示时,先查数据,有的话要展示

但是这时我从后台拿到数组,发现传进组件的数据,接收到了却没有展示出来,看了其他博客,说是渲染问题:

picker里面的参数在data里已经完成初始化了

所以结果就是value对应的是data里面初始化的值,初始化的值为空,自然默认值只能是第一个。

我这里在组件中使用observers解决的

另外,不是组件,表单页面上直接使用picker组件也有这个问题,从后台拿到数据,即时使用了setData修改picker 的index,数据也没有展示出来,我的解决方式:

对原生微信小程序不是很熟,仅供参考

小程序的子组件在接收传值的时候可以通过observer去观察值的变化从而触发一些方法

具体的用法如上,properties在接收每个数据的时候,可以给这个数据指定类型默认值等。同时还可以给他指定一个属性observer。这个属性是一个函数,函数接收两个参数,第一个参数为新的值,第二个参数为旧的值。

当这个数据发生变化的时候,就会去触发这个函数。

iOS数据监听很简单,比如登录成功之后首页、个人中心页等很多页面都需要更新数据,只需要首页和个人中心页注册通知,登录成功之后发送通知,首页和个人中心页就能接收到该通知,此时就可以更新数据及界面,退出登录同理。

小程序更新页面数据就比较费劲,之前我都是获取上级页面,然后调用上级页面自定义方法 loadNewData 方法来刷新上级页面数据。

这种方法说实话也挺好用的,但是只能更新 wx.navigateTo 打开的页面。

官方也有页面间通信方法 EventChannel ,同样只能和 wx.navigateTo 打开的页面进行通信。

今天遇到的需求是 tabbar 切换的页面更新首页列表数据,只能各种百度,最终也实现的功能。

在首页调用

在其他页面修改 reloadIndex 的值

小程序组件有 数据监听器 ,也实现了某个功能。

参考文章:

小程序实现数据监听

小程序如何在其他页面监听globalData中值的变化?

微信小程序设置简单的监听器


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12101845.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存