crud重新请求,无法触发重新渲染,导致界面上显示的是旧值
Author: ranwawaCreated Oct 24, 2025Updated Feb 2, 2026
Labelsneed confirm
描述问题:
有一个crud 里面有一列是switch用于调用接口修改某行数据的状态 接口调用失败->状态修改失败 重新拉列表数据,switch值未发变化
比如: siwtch本身的状态是未选中 点击切换,变成选中状态 调用接口,接口调用成功 后端逻辑中,状态修改失败 重新获取列表数据 接口响应的选中状态是 未选中 但界面上还是已选中状态
截图或视频:
如何复现(请务必完整填写下面内容):
- 你是如何使用 amis 的?
直接在官方文档上即可复现
- amis 版本是什么?请先在最新 beta 版本测试问题是否存在
2025年10月24日的官方文档
- 粘贴有问题的完整
amis schema代码:
{
"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
}
}
]
}
}- 操作步骤
- 拦截列表接口/amis/api/mock2/sample的响应,给第一个元素添加switch: true属性
- 刷新页面
- 点击第一个元素的switch即可复现
和这个 https://github.com/baidu/amis/issues/11820 是同一个问题
Source: baidu/amis