Reactjs 如何清除formsy material ui中的文本字段
嗨,我正在使用React 14并在ES6中编写它。我正在使用formsy材质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} />
<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();