Amis表单提交后数据未更新,如何触发重新渲染?
在用Amis做数据编辑页面时遇到问题,表单提交成功后数据没变化。尝试用setData更新状态了,但界面还是显示旧数据。
场景是这样的:用户编辑信息后点击提交,后端返回新数据后,我用React的setState更新了formData变量,但表单里的输入框还是老内容。控制台没报错,数据确实到组件里了。
表单配置是这样的:
{
"type": "form",
"api": "/api/save",
"body": [
{ "type": "input-text", "name": "name", "label": "姓名" }
]
}
提交处理函数这样写的:
const handleSave = (data) => {
fetch('/api/save', { method: 'POST', body: data })
.then(res => res.json())
.then(newData => setFormData(newData)); // 更新了状态但没渲染
};
折腾了好久没找到原因,Amis表单是不是需要特殊方式强制刷新?
form.updateData方法刷新表单数据。修改你的提交函数:
应该能用,不行再看看别的依赖有没有问题。