在開發小程序的時候,經常遇到vue頁面通過JS代碼更新頁面數據的時候,頁面上的數據并沒有更新過來,特別是使用uni-app,經過多次測試,得出如下結論
1、當頁面中的參數類型為json格式時,如果參數的索引鍵為數字,可能會出現頁面數據不更新,如下:
data() {
return {
orderList:{},
}
}
大部分情況下,orderList參數的值可能是通過ajax遠程獲取的服務器上的數據,如果服務器上返回的數據是這樣的{"3":{"title":"標題1"},"6":{"title":"標題2"}},此時,如果在頁面中通過orderList[3]['title']="新標題1",就會出現頁面數據不更新的情況,解決的辦法,將參數類型設置為數組,如:orderlist:[]
2、向頁面中的json參數追加字段時,如下:
data() {
return {
goodsList:{},
}
}
假如服務端返回的數據是[{"itemID":1,"title":"標題1"},{"itemID"2,"title":"標題2"}],在程序中直接通過JS追加字段,如:goodsList[1]['active']=1,這種情況下,頁面中對active顯示處理時,可能會出現不更新的情況,解決的辦法是在獲取到服務端返回數據時,對數據進行處理,先將active字段寫入,后面再通過JS修改數據時,就沒問題