react中input初始值由props传下来怎么进行表单提交

发布于 2022-09-05 20:19:04 字数 552 浏览 10 评论 0

问一个问题,react,有个表单,初始值由props传下来的,要怎么实现表单提交啊?

这时由props传下来的值一开始是undefined,之后会改变。

我试过的方法如下:

通过受控表单实现

其实是通过state来控制input的value

state只会初始化一次,或者componentWillMount或者componentDidMount的也只是初始化一次,得到的是undefined。之后无论props传下来的是什么,都不会改变的了。我能想到的方法是componentWillReceiveProps的时候也把props设为state,再通过state设为input的值。

通过非受控表单

ref也试过了,其实用ref就是用非受控表单的方式,用defaultValue设置初始值,通过ref获取input的值。但是同样由这个问题,input的default只初始化一次,这个pros一开始传下来的是undefined,所以之后props改变defaultValue不会改变,还是undefined

有没有其它方法?因为这样把props设为state不太好?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

爱*していゐ 2022-09-12 20:19:05
  • 将控件value与props绑定,父组件传递onChange方法到子组件,子组件调用此方法来修改props
  • 判断props不为undefined再render组件
    两种方法可以选一个。
-柠檬树下少年和吉他 2022-09-12 20:19:05

我觉得设置为state 没什么不好的啊 你拿到props了 并没有办法对props修改(除非在onchange里面绑定父级组件传递下来的修改props的方法),只能把props转化为组件内部可控的state,然后进行操作

我一直都是这么做的,关注一波,看看有没有其他大神的答案~

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文