uni.showModal内部方法调用失败问题

uni.showModal是一个异步的函数,异步进行一次弹窗操作,这就使得函数域this指向的window或者其他域,由此是读不到data里数据

解决方法:

(一)改成箭头函数

(二)在外面定义一个that,将this 赋值 给 一个变量/常量

(三)在success后面加上.bind(this)

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用uni.showModal方法时,有一种情况是无法调用方法的。这是因为uni.showModal是一个异步函数,它会在执行弹窗操作后立即返回,而不会等待用户的确认或取消操作。因此,在success回调函数中无法直接调用其他方法或访问data中的数据。为了解决这个问题,可以使用bind(this)来绑定this的作用域,或者在函数开头通过var that=this来保存this的引用,然后通过that来调用data中的数据。这样就可以在success回调函数中访问和操作data中的数据了。例如可以按照以下方式使用uni.showModal方法uni.showModal({ title: '提示', content: '这是一个模态弹窗', success: function (res) { if (res.confirm) { console.log('用户点击确定'); // 可以在这里调用其他方法或操作data中的数据 } else if (res.cancel) { console.log('用户点击取消'); // 可以在这里调用其他方法或操作data中的数据 } }.bind(this) }); 另外,小程序官方也提供了wx.showModal方法,但它的样式比较固定,无法满足多元化的需求。因此,自定义弹窗是一个常见的解决方案。可以通过点击某个按钮来弹出一个自定义的modal框,里面的内容可以根据需要进行自定义,可以是简单的文字提示,也可以包括输入框等复杂的布局。这样就可以更好地满足多样化的需求了。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [uni.showModal 里的this指向](https://blog.csdn.net/weixin_45723025/article/details/125971765)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [微信小程序实现自定义modal弹窗封装的方法](https://download.csdn.net/download/weixin_38538585/14014512)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值