微信小程序父子组件传值问题
把自己碰到的问题或者学到的东西在这里总结,慢慢积累
在父子组件传值时,我发现子组件竟然拿不到父组件传过来的值。
我指的拿不到父组件的值,是指在子组件的生命周期created、ready、attached等生命周期函数中,子组件获取不到父组件传过来的值。按照正常来说,是可以拿到的。但当父组件传给子组件的值是通过接口获取到的时,这时候就存在异步加载问题了。子组件已经加载完了,然而父组件的值还没获取到,所以就存在这个子组件获取不到父组件的值的。
解决方法:
1、observer监听器
当监听的值发生改变时就会触发这个函数
properties:{
mydata:{
type:Array,
value:[],
observer:function(mydata){
var that = this;
console.log(that.data.mydata)
}
}
}
2、setTimeout延时
ready:function(){
setTimeout(function(){
console.log( this.data.mydata)
},1000)
} //接口返回值的时间有长有短,延时太短还是获取不到父组件传过来的值,延时太长影响用户体验