Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何清除formsy material ui中的文本字段_Reactjs_Material Ui_Formsy Material Ui_Formsy React - Fatal编程技术网

Reactjs 如何清除formsy material ui中的文本字段

Reactjs 如何清除formsy material ui中的文本字段,reactjs,material-ui,formsy-material-ui,formsy-react,Reactjs,Material Ui,Formsy Material Ui,Formsy React,嗨,我正在使用React 14并在ES6中编写它。我正在使用formsy材质ui进行表单验证。有一个场景,我想在单击按钮时清除文本字段的值 我尝试了以下代码 <FormsyText name="email" ref="email" validations="isEmail" validationError="Invalid Email" hintText="Email" value={this.state.emailValue} />

嗨,我正在使用React 14并在ES6中编写它。我正在使用formsy材质ui进行表单验证。有一个场景,我想在单击按钮时清除文本字段的值

我尝试了以下代码

<FormsyText
    name="email"
    ref="email"
    validations="isEmail"
    validationError="Invalid Email"
    hintText="Email"
    value={this.state.emailValue}
/>
但是文本字段没有被清除。 如何清除它。
请提供帮助。

因此,如果您使用受控输入(可能直接使用物料界面中的
TextField
),您的代码将是正确的,但是
FormsyText
组件在内部处理其值。
如果您传递一个
默认值
,则只会在渲染时使用它,您可以检查它

我现在只看到一种清除价值的方法,即命令式

this.refs.email.setState({ value: "" })
注意:我建议您更改使用
ref
的方式。不推荐使用带有字符串的引用,将来可能会删除。相反,您应该传递一个函数,该函数将接收该组件
例如:

this.\u emailText=node}
validations=“isEmail”
validationError=“无效电子邮件”
hintText=“电子邮件”
value={this.state.emailValue}
/>
//而且要清除它
此._emailText.setState({value:})

在设置状态后尝试重置字段:

this.setState({emailValue : ''});
this.refs.email.reset()
也可以重置所有窗体

this.refs.form.reset()
如果没有类,则使用

formRef.current.reset();

按钮组件是否与组件在同一组件内渲染?您正在使用存储保留状态吗?
this.refs.form.reset()
const formRefdeposit = useRef(null);

<Formsy
        onValidSubmit={handleSubmit}
        onValid={enableButton}
        onInvalid={disableButton}
        ref={formRef}
 >
....Form Fields
</Formsy>
this.formRef.current.reset(); 
formRef.current.reset();