在VUE中使用过滤器(Filters)报[Vue warn]: Error in render: "TypeError: Cannot read property 'toFixed' of undefined"解决办法

问题背景

在使用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);
}




posted @ 2020-05-26 09:53  高坦的博客  阅读(6122)  评论(0编辑  收藏  举报