解决'Cannot read property 'trim' of undefined' 错误:网易云音乐歌词解析
解决'Cannot read property 'trim' of undefined' 错误:网易云音乐歌词解析
这个错误通常是由于代码中有未定义的变量或对象引起的。在这个情况下,可能是因为某些行没有歌词,导致在分割时间和歌词时出现了问题。你可以尝试在分割时间和歌词之前,添加一个条件判断来检查是否存在歌词。例如:
lrc(songId) {
wx.request({
url: `https://music.163.com/api/song/lyric?os=pc&id=${songId}&lv=-1&kv=-1&tv=-1`,
success: (res) => {
// console.log(res);
var str = res.data.lrc.lyric;
var lyrics = [];
// console.log(str);
//将歌词数组分割成一行一行
var lines = str.split('\n');
for (var i = 0; i < lines.length - 1; i++) {
var line = lines[i];
console.log(line);
//将时间与歌词分割开
var timeLyric = line.split(']');
//检查是否存在歌词
if (timeLyric.length > 1) {
//取出时间并转成毫秒数
var time = timeLyric[0].trim().replaceAll('[', '');
var minute = parseInt(time.split(':')[0]);
var second = parseFloat(time.split(':')[1]);
var seconds = minute * 60 * 1000 + second * 1000;
//取出歌词
var lyric = timeLyric[1].trim();
console.log(time, lyric);
var gqc = {};
gqc.time = seconds;
gqc.lyric = lyric;
lyrics.push(gqc);
} else {
// 处理没有歌词的情况
console.log('This line has no lyric.');
}
}
this.setData({
lyrics: lyrics,
});
console.log(lyrics);
}
})
},
通过在分割时间和歌词之前添加条件判断,我们可以有效地避免'Cannot read property 'trim' of undefined' 错误,并确保代码的健壮性。在没有歌词的情况下,可以选择跳过这一行,或者根据实际需求进行其他处理。
原文地址: https://www.cveoy.top/t/topic/oRep 著作权归作者所有。请勿转载和采集!