uni-app中filters不支持直接传多个独立参数,必须将多参数封装为对象或数组再传入,因Vue 2底层限制过滤器仅接收第一个参数作为有效输入。
filters 在 uni-app 中不支持直接传多个独立参数,比如 {{ item | format('yyyy-MM-dd', true, 'zh-CN') }} 这种写法会报错或被忽略 —— Vue 2(uni-app 当前底层)的过滤器只接收**第一个参数作为值,其余参数会被丢弃**。所以核心结论是:**必须把多个参数打包成一个对象或数组传入,再在过滤器内部解构处理**。uni-app 基于 Vue 2,而 Vue 2 的 filters 设计就是单值入口。模板中 {{ value | filter(a, b, c) }} 的 a、b、c 实际不会被传进函数,只有 value 是有效输入。这是底层限制,不是配置问题。
把需要的多个参数合并为一个对象(推荐),或数组,在过滤器里解构使用:
{{ item | phoneVal({ mobile: item.mobile, tag: item.tag, hide: true }) }}
phoneVal(obj),然后在函数内取 obj.mobile、obj.tag 等{{ item | format(['yyyy-MM-dd', 'short']) }},再在函数里用 args[0]、args[1] 访问有人尝试模仿 uni.navigateTo 的 URL 拼接方式,比如 {{ item | format('yyyy-MM-dd&locale=zh-CN') }},这完全没用 —— 过滤器不解析字符串查询参数,也不会自动拆分 &。它只收一个值,其余全丢。
对象传参虽灵活,但要注意两点:
{ mobile, tag }),可能触发不必要的响应式追踪或影响列表性能,尤其在长列表中;建议提前在 data 或 computed 中构造好对象methods 或 computed 替代过滤器,尤其是涉及条件分支、多状态组合的场景。过滤器只适合“输入→输出”的无副作用转换。 virtualbox下怎么实现ubuntu20.04开机自动挂载共享文件夹?
ubuntu20.04怎么开启护眼模式? ubuntu夜间模式的设置方法
如何在Ubuntu 20.04上安装Microsoft Edge浏览器
Ubuntu20.10优麒麟触摸手势有哪些? 优麒麟系统新增手势汇总
优麒麟20.04.1发布 更新内容汇总(附下载)
Mermaid Visual Editor 如何同步可视化操作与 Mermaid 源码?