但是这时我从后台拿到数组,发现传进组件的数据,接收到了却没有展示出来,看了其他博客,说是渲染问题:
picker里面的参数在data里已经完成初始化了
所以结果就是value对应的是data里面初始化的值,初始化的值为空,自然默认值只能是第一个。
我这里在组件中使用observers解决的
另外,不是组件,表单页面上直接使用picker组件也有这个问题,从后台拿到数据,即时使用了setData修改picker 的index,数据也没有展示出来,我的解决方式:
对原生微信小程序不是很熟,仅供参考
小程序的子组件在接收传值的时候可以通过observer去观察值的变化从而触发一些方法
具体的用法如上,properties在接收每个数据的时候,可以给这个数据指定类型默认值等。同时还可以给他指定一个属性observer。这个属性是一个函数,函数接收两个参数,第一个参数为新的值,第二个参数为旧的值。
当这个数据发生变化的时候,就会去触发这个函数。
iOS数据监听很简单,比如登录成功之后首页、个人中心页等很多页面都需要更新数据,只需要首页和个人中心页注册通知,登录成功之后发送通知,首页和个人中心页就能接收到该通知,此时就可以更新数据及界面,退出登录同理。小程序更新页面数据就比较费劲,之前我都是获取上级页面,然后调用上级页面自定义方法 loadNewData 方法来刷新上级页面数据。
这种方法说实话也挺好用的,但是只能更新 wx.navigateTo 打开的页面。
官方也有页面间通信方法 EventChannel ,同样只能和 wx.navigateTo 打开的页面进行通信。
今天遇到的需求是 tabbar 切换的页面更新首页列表数据,只能各种百度,最终也实现的功能。
在首页调用
在其他页面修改 reloadIndex 的值
小程序组件有 数据监听器 ,也实现了某个功能。
参考文章:
小程序实现数据监听
小程序如何在其他页面监听globalData中值的变化?
微信小程序设置简单的监听器
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)