Vue传参过滤发生了问题

<text>{{list.add_time | newsTime}}</text>

首先我获取了数据之后得到的数据是这样的
image.png

我是这样进行过滤的

    export default {
        data() {
            return {
                list:[]
            }
        },
        onLoad() { ... },
        methods: {    getList(api){ ... } },
        filters:{
            newsTime(time)
            {
                return time.slice(0, 10)
            }
        }
        

成功之后,表面上没问题!但是提出了这个!为什么呢?
image.png


image.png

我测试time.toUpperCase()也是一样 不管用谁都会报这个错
image.png

为什么!!!这是为什么!!!

阅读 2.3k
4 个回答

你的list是[],
而过滤的只是普通的字符串。最简单的解决办法!在你的这个位置 加一个 “”就好了。

<text>{{list.add_time +'' | newsTime}}</text>
return (time || '').slice(0, 10)

Cannot read property 'XXX' of undefined,说明timeundefined
你可以在newsTime方法中,先打印一下time看看,是不是每条数据都存在add_time

数据类型问题
splice仅对字符串有效
可以用一些方式将其他类型隐式或显式转为字符串类型

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题