清除声明形式规则中的 meta.touched
Clear meta.touched in declerative form rules
我在 react-final-form
中使用声明性字段规则,它监听一个字段的变化并更新另一个字段的值。代码如下所示:
const WhenFieldChanges = ({ field, becomes, set, to }) => (
<Field name={set} subscription={{}}>
{(
{ input: { onChange } }
) => (
<OnChange name={field}>
{value => {
if (value === becomes) {
onChange(to)
}
}}
</OnChange>
)}
</Field>
)
那么可以使用如下形式:
<WhenFieldChanges
field="gift"
becomes={false}
set="giftMessage"
to={undefined}
/>
清除set
字段的值。但我还需要清除该字段的 meta.touched
。我该怎么做?
这里是link到codesandbox。
FormApi
上有一个 resetFieldState()
函数可以满足您的需求。
我在 react-final-form
中使用声明性字段规则,它监听一个字段的变化并更新另一个字段的值。代码如下所示:
const WhenFieldChanges = ({ field, becomes, set, to }) => (
<Field name={set} subscription={{}}>
{(
{ input: { onChange } }
) => (
<OnChange name={field}>
{value => {
if (value === becomes) {
onChange(to)
}
}}
</OnChange>
)}
</Field>
)
那么可以使用如下形式:
<WhenFieldChanges
field="gift"
becomes={false}
set="giftMessage"
to={undefined}
/>
清除set
字段的值。但我还需要清除该字段的 meta.touched
。我该怎么做?
这里是link到codesandbox。
FormApi
上有一个 resetFieldState()
函数可以满足您的需求。