请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

模态框点击确定开始播放音乐后,会自动再次弹出模态框的问题

我现在的逻辑是点击一个“播放”按钮的时候,会出现模态对话框,如果点击确定,才会播放歌曲。
现在的问题是 我点击 模态框 的确定“播放”按钮后,歌曲可以正常播放,但是会接着再次弹出是否播放的模态框。、
自己感觉好像是 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 () {

  }
})

正在回答 回答被采纳积分+3

1回答

7七月 2020-10-16 21:50:55

如果怀疑是onload执行了两次 那么就onload里写一个console 看看是否输出两次。我觉得是不会的

0 回复 有任何疑惑可以回复我~
  • 提问者 邢方阁 #1
    console了一下,onLoad执行了一次,但是那个模态框却是弹两次。也没有发现哪里的问题。好尴尬
    回复 有任何疑惑可以回复我~ 2020-10-17 08:27:56
  • 7七月 回复 提问者 邢方阁 #2
    你可以换个其他的比如轻提示试试,看看是不是出现两次
    回复 有任何疑惑可以回复我~ 2020-10-17 20:30:17
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信