Cannot read property 'data' of undefined —— 小程序开发
<p> 由于疫情原因目前处于半下岗状态,在家的时候就研究起了小程序开发。由于是新手,所以总会遇到各种问题,顺便记录一下。</p><div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">wx.showModal({
title: </span>'提示'<span style="color: rgba(0, 0, 0, 1)">,
content: </span>'这是一个模态弹窗'<span style="color: rgba(0, 0, 0, 1)">,
success (res) {
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (res.confirm) {
</span><span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.data.messageId
} </span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (res.cancel) {
console.log(</span>'用户点击取消'<span style="color: rgba(0, 0, 0, 1)">)
}
}
})</span></pre>
</div>
<p> 如果这么写,会遇到“<span style="color: rgba(255, 0, 0, 1)">Cannot read property 'data' of undefined ”</span>的错误。</p>
<p> </p>
<p> 如果改成箭头函数的写法,就不会出错。</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">wx.showModal({
title: </span>'提示'<span style="color: rgba(0, 0, 0, 1)">,
content: </span>'这是一个模态弹窗'<span style="color: rgba(0, 0, 0, 1)">,
success :(res)</span>=><span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (res.confirm) {
</span><span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.data.messageId
} </span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (res.cancel) {
console.log(</span>'用户点击取消'<span style="color: rgba(0, 0, 0, 1)">)
}
}
})</span></pre>
</div>
<p> 分析原因,箭头函数是ES6的写法,不同的写法,会导致“this”的指代层级不同,所以会找不到data属性。</p>
<p> </p>
</div>
<div id="MySignature" role="contentinfo">
你关注的人都在努力变的更好,你还在等什么呢。<br><br>
来源:https://www.cnblogs.com/iverson-3/p/12821454.html
頁:
[1]