Ani*_*ket 0 reactjs material-ui formsy-material-ui formsy-react
嗨,我正在使用React 14并在ES6中编写它.我正在使用formsy-material-ui进行表单验证.有一种情况我想在单击按钮时清除文本字段的值.
我尝试了以下代码
<FormsyText
name="email"
ref="email"
validations="isEmail"
validationError="Invalid Email"
hintText="Email"
value={this.state.emailValue}
/>
Run Code Online (Sandbox Code Playgroud)
点击按钮,我正在执行以下代码行
this.setState({emailValue : ''});
Run Code Online (Sandbox Code Playgroud)
但是文本字段没有被清除.如何清除它.请帮忙.
因此,如果您使用受控输入(可能直接使用TextFieldMaterial-ui) - 您的代码是正确的,但FormsyText组件在内部处理它的值.
如果您传递了一个value或defaultValue它只是在渲染时使用,您可以在这里查看.
我只看到了一种以现实的方式清除价值的方法.
this.refs.email.setState({ value: "" })
Run Code Online (Sandbox Code Playgroud)
注意:我建议你改变你使用的方式ref.不推荐使用带字符串的refs,将来可能会将其删除.相反,你应该传递一个将接收该组件的函数. https://facebook.github.io/react/docs/more-about-refs.html
示例:
<FormsyText
name="email"
ref={(node) => this._emailText = node}
validations="isEmail"
validationError="Invalid Email"
hintText="Email"
value={this.state.emailValue}
/>
//And to clear it
this._emailText.setState({ value: "" })
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4970 次 |
| 最近记录: |