91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue格式化數據后切換頁面出現NaN如何解決

發布時間:2022-06-06 09:15:00 來源:億速云 閱讀:659 作者:iii 欄目:開發技術

這篇文章主要介紹“Vue格式化數據后切換頁面出現NaN如何解決”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Vue格式化數據后切換頁面出現NaN如何解決”文章能幫助大家解決問題。

格式化數據后切換頁面出現NaN

目的

在一個vue項目中,需要對返回數據的時間戳進行格式化,數據格式如下

res =  [ { "program_id": 6, "code": 1005,"create_time": 1627022366, 
            "child": [ { "program_id": 7, "code": 1006, "create_time": 1627022366,} ] } ]

問題

利用遞歸進行格式化,在computed中執行,第一次顯示沒有問題,但切換頁面后,時間顯示變成一行NaN

formatProjectList (list) {
  let projectList = list.map((item) => {
  // formatTime是格式化函數,返回'Y-m-d H:i:s'格式的字符串
      item.create_time = formatTime(new Date( item.create_time * 1000 ), 'Y-m-d H:i:s')
      if (item.child) { this.formatProjectList (item.child) }
      return item
    })
    return projectList
  },

原因

在map函數中,item.create_time 直接修改了源數據res,res是已格式完成的字符串

切換頁面會重新觸發computed,此時再執行格式化會將字符串傳給formatTime格式化函數,formatTime接收了字符串會返回NaN

解決方案

將源數據res進行深拷貝,再執行該函數

computed: {
  projectList () {
      // deepClone 是深拷貝函數
      let newList = deepClone(res.data.list)
      let formatList = this.formatProjectList(newList)
      return formatList
    }
  }

數字運算有時候會出現NAN的情況

vue的html中,經常會出現,需要對獲取的數據進行加減乘除運算的情況,如果在表達式中進行運算

例:{{ a + b + c }}

這種會導致,你在獲取數據的時候,值還沒取到,dom剛開始渲染,所以a,b,c的值做運算,會顯示NAN,等到數據獲取結束,才會顯示運算結果,對于這種短暫的NAN的閃現,往往會影響用戶體驗

具體給出解決辦法

一種是加loading,通過loading來覆蓋NAN,另一種是在http請求的結果response.data中,直接賦值處理

如:

this.result = this.a + this.b + this.c

注意:這里的result必須在data屬性中定義,否則會報錯。

關于“Vue格式化數據后切換頁面出現NaN如何解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

林州市| 刚察县| 高安市| 卫辉市| 兴宁市| 富阳市| 琼中| 祁阳县| 宁津县| 都匀市| 崇仁县| 洛扎县| 徐汇区| 普定县| 尼勒克县| 霍邱县| 清新县| 台中市| 灵武市| 台安县| 汝州市| 吉木乃县| 宣武区| 柳林县| 扎鲁特旗| 云梦县| 曲阜市| 西乡县| 竹溪县| 定南县| 西城区| 峨山| 仙游县| 陵水| 凤山县| 太仓市| 阜新| 肥西县| 澜沧| 阳谷县| 敖汉旗|