react antd里面当编辑数据的时候, 数据的id这个隐藏项存哪啊? 用法是不是不对

以前用jq开发的时候, 表单都有一个hidden项用于存要编辑的数据的id, 用这个id的有无来判断是新建还是编辑

antd好像没有这个东西了啊, 那这个id存哪呢?

存state中? setState看网上说是异步的, 也就是不能立即生效, 当Modal弹出后, 立即点 save 按钮, 那么id有可能还没set进去, 也就误认为是新建而不是更新了

一般如何解决, 刚接触react, 套路还不明白

阅读 6.4k
4 个回答

表单操作参考antd的form里面的一系列api,编辑的时候页面初始化数据,setFieldsValues,新建页面不做初始化。给一个隐藏的input放id,提交的时候一次性提交。
clipboard.png

clipboard.png

看你是怎么实现的,可以根据路由来判断.比如/xxx/:id是你的路由,后面是id就是编辑,/xxx/add就是创建
看你说的意思是你用modal来填写数据?能不能把你的情景再说清楚点

现在几乎都用的json对象来保存数据吧,编辑页面的数据存在一个json中。这时候,id绑定到哪里是为所谓的呀。如果不需要显示就没必要绑定控件,只要你这个数据是编辑,那id肯定是有值的。如果是新建的,那id就是空的字符串。举个例子,完整的数据是userInfo = {id: '10001', name: 'LiLei', age: 21, sex: 'm'}。此时,如果你的表单设定只是修改姓名,那就只把name字段绑定到控件上就行了,保存的时候直接把state中的userInfo发给server就行了。

新手上路,请多包涵

不用那么复杂,antd pro有个TableList的例子,里面是把fieldsValue覆盖原来的formValue,但是ID字段留下来了,不用那么复杂的用老办法把ID绑在INPUT上
const updateHandle = () => {

  form.validateFields((err, fieldsValue) => {
    if (err) return;
    form.resetFields();
    *const newFormVals = { ...formVals, ...fieldsValue };*
    handleUpdate(newFormVals);
  });
};
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题