开发者社区 问答 正文

为什么我编写了onchange的js代码后预览确运行不了,没有反应?

已解决

我想用数值组件“毛利率”的值的大小来决定下拉组件“订单等级”的值微信截图_20250305215931.png
微信截图_20250305215955.png

展开
收起
塑料袋定制 2025-03-05 22:06:03 90 分享 版权
来自: 钉钉宜搭
1 条回答
写回答
取消 提交回答
  • 采纳回答

    子表里面的组件需要通过【updateItemValue】API进行更新,具体可以参考该文档:
    https://docs.aliwork.com/docs/yida_support/lbtl0t/ocmxyv#m6g9t
    给子表单绑定onchange事件而不是绑定到子表里面的某个组件,然后通过fieldId去判断是不是对应的组件值发生变化,是的话就去更新,需要注意的是fieldId是从extra这个参数里面取的。IF判断的时候直接判断fieldId等不等于数值组件的唯一标识

        // 子表单绑定事件
        export function onChange({value, extra}) {
          const { formGroupId, from, changes,fieldId } = extra || {};
          if (from === 'setItemValue') return; // 避免使用 updateItemValue 更新子表数据后,再次触发 onChange 陷入死循环
          const tableField = this.$('子表单唯一标识');
          // 判断是否是设备字段变化
             if (fieldId === '子表单设备字段唯一标识') {
                tableField.updateItemValue(formGroupId, {
                        'numberField_l00o018a': 2, 
                        'textareaField_kysd3grq': "修改值"
                    });
          };
        }
    

    image.png

    2025-03-06 13:04:28
    赞同 359 展开评论