清除声明形式规则中的 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() 函数可以满足您的需求。