uni.showModal 无法调用方法
时间: 2023-10-15 08:24:40 浏览: 142
当使用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 ]
阅读全文