uni-app 无法拿到节点的属性值

uni-app 无法拿到节点的属性值

开发环境 版本号 项目创建方式
Windows win10 HBuilderX
### 操作步骤:
```p
view.fields({
computedStyle:['color'],
properties:['autoplay']
}, data => {
console.log("得到节点信息" + JSON.stringify(data));
}).exec(e=> {
console.log(e);
});
无法拿到自定义的属性

预期结果:

autoplay:true

实际结果:

{}

ba87da094ef34de2ea8749f7214a0904


更多关于uni-app 无法拿到节点的属性值的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 无法拿到节点的属性值的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在 uni-app 中,通过 nodesRef.fields() 获取节点属性时,默认只能获取到组件文档中定义的标准属性。自定义属性(如 autoplay)需要通过 properties 参数显式声明才能获取。

根据你的代码,问题在于 properties 配置未正确指定自定义属性名。修改如下:

view.fields({
  computedStyle: ['color'],
  properties: ['autoplay']  // 确保与模板中定义的自定义属性名完全一致
}, data => {
  console.log("节点信息:" + JSON.stringify(data));
}).exec();

注意事项:

  1. 检查模板中的属性名是否为 autoplay(全小写),HTML 属性不区分大小写,但需与配置保持一致
  2. 确认节点在渲染时已包含该属性(可通过调试工具检查元素)
  3. 若属性值为动态绑定,需确保数据已正确赋值

若仍无法获取,可尝试在模板中使用 data- 前缀:

<view :data-autoplay="autoplayValue"></view>

并对应修改查询配置:

properties: ['data-autoplay']
回到顶部