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()
应该可以。