react项目中使用antd的form组件,动态设置input框的值

版权声明:如需转载,请注明出处 https://blog.csdn.net/zr15829039341/article/details/82707774

问题:

创建账号时,输入账号后不搜索直接保存,提示查询后,再点搜索就不能搜索这个账号了

原因:

点击保存之后,对表单进行了验证,导致之后请求的数据无法在更新到input框中,也就是说即使在state中有值,也不会更新initialValue值,就导致搜索后的值不能正确填入input中,表单也就提交不了。

解决办法:

不使用initialValue设置动态更新的值,而是使用 this.props.form.setFieldValue({name:data}); 用于动态更新值,就可以解决了。

if (result.code===0) {
      if (result.data) {
              this.props.form.setFieldsValue({name:result.data});
      }
}

ps:

还有一个问题,如果输入了账号进行搜索后匹配了name,也填入了input框中。但是又修改了账号,然后直接提交,就会导致账号和name不匹配,也就是name是存在的,但就不是对应的账号了。会导致保存之后,如果正确的账号和name已经存在,数据库出现数据存储问题。

解决:

给账号输入的Input框添加onChange事件,来触发如果有改变就清空name框,防止错误提交

扫描二维码关注公众号,回复: 3663748 查看本文章
change = (event) => {
   this.props.form.setFieldsValue({name:''});
}

记录一下

猜你喜欢

转载自blog.csdn.net/zr15829039341/article/details/82707774
今日推荐