Skip to content

amis的onEvent中setValue对配置visibleOn属性的组件不生效 #11942

@leung0727

Description

@leung0727

描述问题:

在amis的onEvent配置里中,对目标组件进行setValue赋值操作,但目标组件配置了visibleOn属性,当setValue事件触发时,假如目标组件已经通过visibleOn属性隐藏了,控制台会出现下图中的报错,整个事件流会被阻断,无法流转,导致交互失效

截图或视频:

Image

如何复现(请务必完整填写下面内容):

  1. 你是如何使用 amis 的?
    sdk

  2. amis 版本是什么?请先在最新 beta 版本测试问题是否存在
    版本是6.12.0

  3. 粘贴有问题的完整 amis schema 代码:


{
  "type": "page",
  "body": {
    "type": "form",
    "name":"form_1",
    "debug": true,
    "body": [
      {
        "name": "mediaPlatform",
        "type": "radios",
        "label": "平台",
        "value": "cilijinniu",
        "options": [
          {
            "label": "磁力",
            "value": "cilijinniu"
          },
          {
            "label": "抖音",
            "value": "douyin"
          }
        ],
        "onEvent": {
          "change": {
            "actions": [
              {
                "actionType": "setValue",
                "componentName": "mediaProductId",
                "args": {
                  "value": 0
                }
              },
              {
                "actionType": "setValue",
                "componentName": "mediaProductOrderId",
                "args": {
                  "value": 0
                }
              }
            ]
          }
        }
      },
      {
        "type": "combo",
        "id": "publishData",
        "trackExpression": "${mediaPlatform}${shopPlatform}${mediaProductType}",
        "label": "信息",
        "name": "publishData",
        "multiple": true,
        "multiLine": true,
        "minLength": 1,
        "maxLength": 5,
        "required": true,
        "value": [
          []
        ],
        "addButtonText": "新增",
        "strictMode": false,
        "syncFields": [
          "mediaPlatform",
          "shopPlatform"
        ],
        "items": [
          {
            "type": "button-group-select",
            "label": "链接类型",
            "name": "mediaProductOrderType",
            "value": "related",
            "options": [
              {
                "label": "关联",
                "value": "related"
              },
              {
                "label": "新增",
                "value": "created"
              }
            ],
            "onEvent": {
              "change": {
                "actions": [
                  {
                    "actionType": "setValue",
                    "componentId": "relatedMediaUserId",
                    "args": {
                      "value": null
                    }
                  },
                  {
                    "actionType": "setValue",
                    "componentId": "mediaProductId",
                    "args": {
                      "value": null
                    }
                  },
                  {
                    "actionType": "setValue",
                    "componentId": "mediaProductOrderId",
                    "args": {
                      "value": null
                    }
                  },
                  {
                    "actionType": "setValue",
                    "componentId": "mediaUserId",
                    "args": {
                      "value": null
                    }
                  }
                ]
              }
            }
          },
          {
            "type": "picker",
            "name": "mediaProductId",
            "id": "mediaProductId",
            "visibleOn": "${mediaProductOrderType == 'related' && ARRAYINCLUDES(['cilijinniu', 'qianchuan'], mediaPlatform)}",
            "requiredOn": "${mediaProductOrderType == 'related' && ARRAYINCLUDES(['cilijinniu', 'qianchuan'], mediaPlatform)}",
            "disabledTip": "请选择套餐后操作",
            "modalMode": "drawer",
            "size": "xl",
            "label": "商品链接",
            "options": [
              {
                "label": "A",
                "value": 899
              },
              {
                "label": "B",
                "value": 898
              },
              {
                "label": "C",
                "value": 897
              }
            ]
          },
          {
            "type": "picker",
            "name": "mediaProductOrderId",
            "id": "mediaProductOrderId",
            "requiredOn": "${mediaProductOrderType == 'created'}",
            "visibleOn": "${mediaProductOrderType == 'created' && mediaPlatform == 'cilijinniu'}",
            "disabledTip": "请选择套餐后操作",
            "searchable": true,
            "modalMode": "drawer",
            "size": "xl",
            "label": "商品组",
            "options": [
              {
                "label": "商品组1",
                "value": 456
              },
              {
                "label": "商品组2",
                "value": 457
              },
              {
                "label": "商品组3",
                "value": 458
              }
            ]
          },
          {
            "type": "select",
            "name": "mediaUserId",
            "id": "mediaUserId",
            "label": "店铺",
            "optionClassName": "selectHeight",
            "labelField": "name",
            "valueField": "mediaUserId",
            "requiredOn": "${mediaProductOrderType == 'created'}",
            "visibleOn": "${mediaProductOrderType == 'created' && mediaPlatform == 'cilijinniu'}",
            "options": [
              {
                "name": "店铺1",
                "mediaUserId": 101
              },
              {
                "name": "店铺2",
                "mediaUserId": 102
              },
              {
                "name": "店铺3",
                "mediaUserId": 103
              }
            ]
          }
        ]
      }
    ]
  }
}

  1. 操作步骤
    请简单描述一下复现的操作步骤...
    如上面 json 渲染的页面,切换选项就会报错

用你昨天提供的方法好像无法实现,用昨天的方法当例子里面有combo,切换链接类型时,我该如何正确找到对应combo进行setValue数据修改

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions