三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

钉钉小程序-语法坑-1:a:if :

钉钉小程序-语法坑-1:a:if :

语法坑注意点:

a:if :

原代码:

<view a:if="workList.length===0 && !loading">暂无工单数据</view>

钉钉小程序 a:if 语法坑

正确写法:{{ workList.length === 0 && !loading }}

错误写法:不带{{ }},表达式不会执行,直接判定永远为 true,所以一直显示文字。

第一步:修改 workList.axml

找到底部暂无数据那一行,改成:

<view a:if="{{workList.length === 0 && !loading}}">暂无工单数据</view>

第二步:排查兜底校验(如果上面改完还不行)

在请求成功回调console.log("最终渲染workList:", this.data.workList)

if (result.code === 200) { const rows = result.rows || []; const total = result.total || 0; let oldList = this.data.workList; const newList = refresh ? rows : [...oldList, ...rows]; console.log("赋值前newList",newList); //打印查看数组长度 this.setData({ workList: newList, total: total, pageNum: page },()=>{ console.log("setData完成 workList长度",this.data.workList.length) }); }

正常:数组长度 = 1 →{{workList.length ===0}}结果 false,“暂无工单” 隐藏。

第三步:展开箭头样式微调(匹配截图 UI)

.arrow-right { transform: rotate(0deg); } .arrow-down { transform: rotate(90deg); }

遇到这种情况,优先执行第一条改动,很大概率就是a:if缺少双大括号造成永久显示暂无数据。

改完保存,重新预览页面测试。

← 返回列表