简体中文
setData
约 308 字大约 1 分钟
2025-09-22
该方法用于更新主对象数据。
参数
| 参数 | 说明 | 类型 |
|---|---|---|
| changeData | 要变更的字段数据 | Object |
| options | 可选配置参数 | Object |
options参数说明:
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| fieldName | 触发变更的字段,ui事件触发需要,不传无法触发ui事件 | String | — |
| triggerUiFieldNames | 触发ui事件变化的字段,同时变更多字段场景需要 | String Array | — |
| triggerCal | 是否触发计算 | Boolean | true |
| triggerUi | 是否触发ui事件 | Boolean | true |
| noCalField | 指定不触发计算的主对象的字段 | Array | — |
返回结果
Promise 在计算和UI事件结束后异步返回结果。
代码示例
export default function (context) {
return {
/**在新建编辑页渲染完成后*/
renderEnd(){
context.setData({"field_api_name": value}, {
fieldName: 'field_api_name'
}).then(()=>{
console.log("context.setData success.")
});
}
}
}注意
避免频繁调用context.setData更新数据,尽可能合并后一次调用。
- setData可能触发计算和UI事件等异步任务,频繁调用可能产生并发问题。
- 频繁调用触发UI更新会影响性能,可能导致页面卡顿。
let changeData = {k1:1,k2:2} //避免循环中调用 //错误示例 Object.keys(changeData).forEach(k=>{ context.setData({k: changeData[k]},{fieldName:k}) }) //正确示例 context.setData(changeData,{fieldName:"k1"})
