起因,我們在小程序中經常會設置或更改 data 中的變量 (我這裏只考慮每次只修改一個變量的情況)
代碼是這樣寫的
this.setData({
currentIndex:e.detail.currentIndex
})
基本上每個方法中都有改變變量的值
這個代碼要三行,看着不爽,於是我就想在 app.js中定義一個公用的函數 因爲每個頁面上都有 app=getApp()
於是在app.js下就設計了一個函數
setDataOne(paramkey, value, _this){
_this.setData({
paramkey:value
})
}
之後就在頁中這樣調用
app.setDataOne("currentIndex",e.detail.currentIndex,this);
一行就完成了,
咋一看,代碼好像沒有問題,但是一測試,就有問題了,
問題的原因在於,js的對象的 鍵,不支持使用 字符串來傳參 所以這個 “currentIndex” 當鍵 傳過去是不行的
豆辦上找到這個文章可以瞭解下,跟本文關係不太大 https://www.douban.com/note/625698916/
我的解決辦法是 修改app.setDataOne 這個函數
代碼如下:
setDataOne(paramkey,value,_this){
let obj={};
obj[paramkey] = value;
_this.setData(obj)
}
這樣就解決問題了,當然解決辦法還有很多,我只記錄下我的解決過程
原文鏈接:https://blog.csdn.net/hjh15827475896/article/details/102523131