Reactjs 清除字段';以最终形式清除输入上的s值
我正在使用带有Reactjs 清除字段';以最终形式清除输入上的s值,reactjs,react-final-form,Reactjs,React Final Form,我正在使用带有react final form的自定义组件。在输入更改时,它将值设置为地址字段。但是当输入被清除时,它不会更新字段的值。所以我试着用形式变异来做 我已经添加了一个用于清除字段的变量: mutators={{ clear: ([address], state, { changeValue }) => { changeValue(state, "address", () => undefined); } }} 我试图将它添加到我的自定义onChange函
react final form
的自定义组件。在输入更改时,它将值设置为地址
字段。但是当输入被清除时,它不会更新字段的值。所以我试着用形式变异来做
我已经添加了一个用于清除字段的变量:
mutators={{
clear: ([address], state, { changeValue }) => {
changeValue(state, "address", () => undefined);
}
}}
我试图将它添加到我的自定义onChange函数中,但它不起作用
onChange={event =>
props.input.onChange !== undefined
? props.input.onChange({ value: event })
: form.mutators.clear
}
或者这完全可以在没有变异的情况下完成?我非常感谢你的帮助。下面是一个(清除字段仅在按钮单击时有效,因为
onClick={form.mutators.clear}
)。所有默认回调都由组件处理。如果您想通过单击按钮进行清除,您可以创建一个自定义组件并使用本机回调方法来完成您的任务
onChange=(事件)=>{
这是我的国家({
地址:event.target.value
});
}
onClear=()=>{
这是我的国家({
地址:''
});
}
清楚的
您可以随时调用表单。更改('地址',未定义)
以清除值。问题不在于代码中的react final表单,而在于react da数据,我在1天内对您的代码做了很多修改,并检查了react final表单的重置是否正常工作
只需用这段代码更新渲染,就可以看到“重置”工作得非常好。是 啊问题在于react da数据。我不知道它做了什么,因为这个包的官方信息较少
数据测试
{
changeValue(状态,“地址”,()=>未定义);
}
}}
onSubmit={onSubmit}
render={({form,handleSubmit,pristine,invalid,values,errors})=>(
{/*{props=>(
props.input.onChange!==未定义
?props.input.onChange({value:event})
:form.mutators.clear
}
/>
)}
*/}
提交
清楚的
{fieldsState=>(
{JSON.stringify(fieldsState,未定义,2)}
)}
)}
/>
谢谢您的回复。但是我已经有了一个按钮,它用{form.mutators.clear}
清除输入。我的问题是,当用户从输入中删除该值时,如何清除地址字段。您可以看到示例hear Thank You for your的回复。我试图将其添加到这里的“清除”按钮中,但该组件现在无法工作(该字段在更改时没有任何值)。我的问题是,当输入被清除时,我如何调用这个函数(或form.mutators.clear
)。E当用户删除他键入的内容时。当清除对象中其部分的字段存在选项时?我试过了,但是把所有的东西都清空了嗨,谢谢你的回复。但是我不需要使用form.reset
。地址字段将只是表单中的一个字段。所以我需要找到一种方法,当输入本身被清除时,清除这个唯一字段的值。您可以键入ММСаСа
,选择其中一个建议,然后清除输入,看看它是如何工作的。基本上,我需要将form.mutators.clear
集成到我的onChange函数中,或者在清除输入时,找到另一种清除地址值的方法。是否尝试过form.resetFieldState它将重置特定字段的值。我认为这是为你的目的服务的完美选择。你能在这里举个例子吗?你忘了执行它,更改form.mutators.clear
=>form.mutators.clear()
应该可以。