這篇文章主要介紹小程序報錯:this.setData is not a function的解決方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
微信小程序 報錯:this.setData is not a function
在page中定義的代碼如下,代碼會報錯:this.setData is not a function
<strong> pasteEncryptedText:function()</strong>{
let decryptedPass = this.data.decryptedPassword;
if (decryptedPass == '' ){
wx.showToast({
title: '請先輸入解密密碼',
mask: true,
success: function (res) {
setTimeout(function () {
wx.hideToast();
}, 4000);
},
});
return;
}else{
wx.getClipboardData({
<strong>success: function (res)</strong> {
if ( res.data == '' ){
wx.showToast({
title: '剪貼板沒有內容',
mask: true,
success: function (res) {
setTimeout(function () {
wx.hideToast();
}, 4000);
},
})
}else{
console.log(decryptedPass);
console.log(res.data);
<strong>this.setData({
encryptedTextDecode: res.data,
originalTextDecode: desEncryptedDecrypted.decrypt(res.data, decryptedPass),
});</strong>
console.log(this.data.originalTextDecode);
}
}
});
}
}問題分析:在函數 pasteEncryptedText()里面嵌套調用另一個函數 wx.showToast(),而setData()是在wx.showToast()中調用的,此時this.setData()
中的this不是page,而是wx.showToast()這個對象了
解決方法:
<strong> 在函數pasteEncryptedText()一開始處將this對象保存:</strong>let that = this;
pasteEncryptedText:function(){
let decryptedPass = this.data.decryptedPassword;<strong>let that = this;</strong>
if (decryptedPass == '' ){
wx.showToast({
title: '請先輸入解密密碼',
mask: true,
success: function (res) {
setTimeout(function () {
wx.hideToast();
}, 4000);
},
});
return;
}else{
wx.getClipboardData({
success: function (res) {
if ( res.data == '' ){
wx.showToast({
title: '剪貼板沒有內容',
mask: true,
success: function (res) {
setTimeout(function () {
wx.hideToast();
}, 4000);
},
})
}else{
console.log(decryptedPass);
console.log(res.data);
<strong> that.setData</strong>({
encryptedTextDecode: res.data,
originalTextDecode: desEncryptedDecrypted.decrypt(res.data, decryptedPass),
});
console.log(<strong>that.data.originalTextDecode</strong>);
}
}
});
}以上是“小程序報錯:this.setData is not a function的解決方法”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。