CRUD组件切换分页,数据域取值不正确
描述问题:
使用crud组件,切换分页后,选择第一条数据修改后,后续获取到的数据都不都不正确,
截图或视频:
https://github.com/baidu/amis/assets/116187210/30679bdf-35dc-4c00-8763-bc2cf75cbb87
如何复现(请务必完整填写下面内容):
-
你是如何使用 amis 的? npm
-
amis 版本是什么?请先在最新 beta 版本测试问题是否存在 6.3.0
-
粘贴有问题的完整
amis schema代码: 参考官网链接:switch#change -
操作步骤 1)直接进入第二页、编辑第一条数据,点击switch组件进行修改。 2)修改完成后,然后切换页码进入第一页。 3)然后再切换到除了第一页的其他页,点击switch组件,发现显示的数据域不正确。
没搞懂是啥意思,切页面是会重新请求接口的,怎么展示跟接口返回有关呢
没搞懂是啥意思,切页面是会重新请求接口的,怎么展示跟接口返回有关呢
这个点问题跟切换分页接口返回没关系,主要是切换分页后,去操作switch组件,弹窗里面出现的id和table列表中的id不匹配,这个问题我们在生产上也遇到了。我再详细的描述一下bug的复现步骤:
- 进入官网,这个一个在CRUD组件中使用switch组件的用例,直接进入第二页、选择第一条数据,点击switch组件进行修改,此时弹窗出现“确定要修改11吗?”提示文案,符合预期,点击确认完成修改。
- 修改完成后,然后切换页码进入第一页,然后选择第6行(非第一行)数据,点击switch组件进行修改,此时弹窗出现“确定要修改16吗?”,这里我选择的是第一页第6行,table中ID列显示的id为6,dialog弹窗中显示的id应该为6才对,而不是16。
- 然后再切换到除了第一页的其他页,点击switch组件,发现弹窗显示的id和table列表中的ID列不匹配。
我们在实际运用场景是在switch 的change事件中发送api接口,但是获取不到table真实的rowData.id,而产生bug
这个跟 表单项的 性能优化逻辑有关,switch 的 name 外其他属性变化,表单项本身不会更新,所以拿到的还是就的。目前可以通过配置给 switch 添加 strictMode: false 避开这个 bug