this.refs vs对表单用法的反应值

时间:2017-06-25 15:09:20

标签: javascript reactjs ecmascript-6

你们如何提交表格?我没有问题制作表格,但我看到了两种不同的方法。我个人使用state来绑定表单值

<input onChange={this.handleInputChange} value={this.state.username} type="text" name="username" />

获取输入值我会这样做

handleInputChange = () => (
   const username = e.target.username.value;
)

它有效,但不确定这是一个好方法,另一种方法是使用refs。

好处是不需要对每个字段进行更改,在onSubmit中只需执行此操作

this.refs.username.value

你有像这样的<input ref="username" type="text" />

的元素

但是如果初始加载是ajax,如何设置用户名的值?

2 个答案:

答案 0 :(得分:2)

我建议不要使用refs,除非你没有别的办法。 https://facebook.github.io/react/docs/refs-and-the-dom.html

将值绑定到状态的方法似乎是要走的路。

答案 1 :(得分:0)

使用onChange(单向绑定)的好处是你可以完全控制输入数据。

假设您希望输入只包含字母

handleInputChange = () => (
   // you can have validation code here to check if the 
   // input has only alphabets and return if otherwise 
   const username = e.target.username.value;
)