我在开发小程序时遇到了这样一个问题:需要在小程序页面一加载就访问data中的数据进行操作。但是我在生命周期函数中访问data中的数据,一直报错,如下图所示:
我的js代码
Page({
/**
* 页面的初始数据
*/
data: {
index: '', //当前播放的下标
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
this.playMusic(this.data.playlist[this.data.index].id, index, true)
}
})
我的报错信息
我在onLoad(),onReady(),onShow()三个生命周期中都调用了 **this.playMusic(this.data.playlist[this.data.index].id, index, true)**这行代码,都是显示该报错信息。一开始我以为是模拟器的问题,但是我使用真机调试,还是存在改报错
解决方法,使用延时方法
onLoad: function (options) {
setTimeout(() => {
this.playMusic(options.id,this.data.index, true)
}, 1000)
}
使用延时器后,没有报错了。