【黄啊码】微信小程序:Cannot read property ‘data‘ of undefined

举报
黄啊码 发表于 2022/06/29 00:17:28 2022/06/29
【摘要】  关注不迷路,或者加魏信ama_huangama一起探讨 wx.showModal({ title: '提示', content: '这是一个弹窗', success (res) { if (res.confirm) { this.data.messageId } else if (res.can...

 关注不迷路,或者加魏信ama_huangama一起探讨


  
  1. wx.showModal({
  2. title: '提示',
  3. content: '这是一个弹窗',
  4. success (res) {
  5. if (res.confirm) {
  6. this.data.messageId
  7. } else if (res.cancel) {
  8. console.log('用户点击取消')
  9. }
  10. }
  11. })

如果这么写,会遇到“Cannot read property 'data' of undefined ”的错误。、

箭头函数是ES6的写法,不同的写法,会导致“this”的指代层级不同,所以会找不到data属性。


  
  1. wx.showModal({
  2. title: '提示',
  3. content: '这是一个弹窗',
  4. success :(res)=> {
  5. if (res.confirm) {
  6. this.data.messageId
  7. } else if (res.cancel) {
  8. console.log('用户点击取消')
  9. }
  10. }
  11. })

当然,我们也可以用js的块状作用域变量 let that=this,然后用that代替this,比如that.data.messageId

至于什么是let,可参考我的另一篇:【黄啊码】关于es6中let和const的介绍_黄啊码-CSDN博客es是js的规范,而js是具体实现将es6转化为es5代码工具:运用的多的是babel在线转换地址:babel,traceur(属于谷歌)letlet和var很相似,用于声明一个变量。但是let声明的变量只存在块状作用域内。function order(x, y) { if (x > y) { // (A) let tmp = x; x = y; y = tmp; } console.log(tmp===x);https://markwcm.blog.csdn.net/article/details/120543823

文章来源: markwcm.blog.csdn.net,作者:黄啊码,版权归原作者所有,如需转载,请联系作者。

原文链接:markwcm.blog.csdn.net/article/details/120869735

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。