#14361·amis

crud重新请求,无法触发重新渲染,导致界面上显示的是旧值

Author: ranwawaCreated Oct 24, 2025Updated Feb 2, 2026
Labelsneed confirm

描述问题:

有一个crud 里面有一列是switch用于调用接口修改某行数据的状态 接口调用失败->状态修改失败 重新拉列表数据,switch值未发变化

比如: siwtch本身的状态是未选中 点击切换,变成选中状态 调用接口,接口调用成功 后端逻辑中,状态修改失败 重新获取列表数据 接口响应的选中状态是 未选中 但界面上还是已选中状态

截图或视频:

Image

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

  1. 你是如何使用 amis 的?

直接在官方文档上即可复现

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

2025年10月24日的官方文档

  1. 粘贴有问题的完整 amis schema 代码:
json
{
  "type": "page",
  "body": {
    "type": "crud",
    "syncLocation": false,
    "api": "/amis/api/mock2/sample",
    "quickSaveItemApi": "/amis/api/mock2/sample/$id",
    "columns": [
      {
        "name": "id",
        "label": "ID"
      },
      {
        "name": "grade",
        "label": "CSS grade",
        "quickEdit": {
          "mode": "inline",
          "type": "select",
          "size": "xs",
          "options": [
            "A",
            "B",
            "C",
            "D",
            "X"
          ],
          "saveImmediately": true
        }
      },
      {
        "name": "switch",
        "label": "switch",
        "quickEdit": {
          "mode": "inline",
          "type": "switch",
          "onText": "开启",
          "offText": "关闭",
          "saveImmediately": true,
          "resetOnFailed": true
        }
      }
    ]
  }
}
  1. 操作步骤
  • 拦截列表接口/amis/api/mock2/sample的响应,给第一个元素添加switch: true属性
  • 刷新页面
  • 点击第一个元素的switch即可复现

和这个 https://github.com/baidu/amis/issues/11820 是同一个问题