如何清除formy材料中的文本字段ui React

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)

但是文本字段没有被清除.如何清除它.请帮忙.

And*_*ges 8

因此,如果您使用受控输入(可能直接使用TextFieldMaterial-ui) - 您的代码是正确的,但FormsyText组件在内部处理它的值.
如果您传递了一个valuedefaultValue它只是在渲染时使用,您可以在这里查看.

我只看到了一种以现实的方式清除价值的方法.

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)