問題背景
在使用VUE過濾器的時候,遇到控制台報錯 : vue.esm.js?efeb:628 [Vue warn]: Error in render: "TypeError: Cannot read property 'toFixed' of undefined"
查到undefined是在過濾器器中報出錯誤的moneyFilters.js
報錯原因是因為過濾器執行了兩次.
第一次是在后台沒有傳遞過來數據的時候,執行了過濾器函數一次.而這個時候並沒有數據,傳遞進過濾器函數的為undefined.報錯是在這個時候產生的
第二次是后台傳遞數據,渲染數據之后,執行了一次過濾器函數.
解決辦法是在過濾器中進行一次判斷傳遞進來的參數.如果傳遞參數為 undefined 或者其他隱式轉換為false的值,跳出函數,不再執行.
代碼
export function toMoney(money) {
if (!money) {//在這里進行一次傳遞數據判斷.如果傳遞進來的為空值,返回其空字符串.解決其問題
return '';
}
return money.toFixed(2);
}