react中input初始值由props传下来怎么进行表单提交
问一个问题,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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
两种方法可以选一个。
我觉得设置为state 没什么不好的啊 你拿到props了 并没有办法对props修改(除非在onchange里面绑定父级组件传递下来的修改props的方法),只能把props转化为组件内部可控的state,然后进行操作
我一直都是这么做的,关注一波,看看有没有其他大神的答案~