模态框点击确定开始播放音乐后,会自动再次弹出模态框的问题
来源:9-11 让每篇文章音乐独立显示状态
邢方阁
2020-10-16
我现在的逻辑是点击一个“播放”按钮的时候,会出现模态对话框,如果点击确定,才会播放歌曲。
现在的问题是 我点击 模态框 的确定“播放”按钮后,歌曲可以正常播放,但是会接着再次弹出是否播放的模态框。、
自己感觉好像是 onLoad里面的onPlay方法执行了两次。
// pages/posts/posts.js
import {userData} from "../../data/data.js";
Page({
/**
* 页面的初始数据
*/
data: {
isPlaying:false,
_music:null
},
/**
* 点击播放音乐
*/
clkTap(event){
let d = this;
wx.showModal({
title: '确定要播放歌曲吗?',
success(res){
if(res.confirm){
let music = d.data._music;
music.title = '音乐标题'
music.src = 'http://m801.music.126.net/20201016142447/feea5f1252a6deea46e32c6d68ca7977/jdymusic/obj/wo3DlMOGwrbDjj7DisKw/4143756822/39ad/2103/966a/29e5021350020f55de2768434859b7cf.mp3';
d.setData({
isPlaying:true
})
}
}
})
},
/**
* 点击停止播放音乐
*/
clkStop(event){
let music = this.data._music;
music.stop();
this.setData({
isPlaying:false
})
},
tapList(event){
console.log(event.currentTarget.dataset.id);
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
const music = wx.getBackgroundAudioManager();
this.data._music = music;
music.onPlay(this.clkTap);
music.onPause(this.clkStop);
this.setData({
userData
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
写回答
1回答
-
7七月
2020-10-16
如果怀疑是onload执行了两次 那么就onload里写一个console 看看是否输出两次。我觉得是不会的
022020-10-17
相似问题