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

以下方法一是摘抄自网友:高坦的博客 | Tan's Blog,仅供自己学习使用!!!

方法二是自己在过滤器处强制转换传过来的参数为数字


方法一:

问题描述:

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

}


方法二:


export function toMoney(money) {

    let newMoney = Number(money) // 在这里进行一次传递数据判断.如果传递进来的为空值,返回其空字符串.解决其问题

    return newMoney.toFixed(2);

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容