微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

试图清除我的 react-final-form 字段,但我得到了空对象值

如何解决试图清除我的 react-final-form 字段,但我得到了空对象值

这是我的场景,我在初始页面加载时清除除 "retainThisObj" 之外的所有字段值。

我的问题是我得到了空的 { } 简而言之我的 "retainThisObj" 也被删除了。我期待这个 { retainThisObj }

这是我的代码

从'react-final-form'导入{ useForm }

  const finalFormAPI = useForm()
  const { retainThisObj,...restValues } = finalFormAPI.values

 // func to reset field values
  const reset = (obj) => {
    Object.keys(obj).length &&
      Object.keys(obj).forEach((value) => {
        finalFormAPI.change(obj[value],undefined)
      })
  }


  useEffect(() => {
    reset(restValues)   
  },[restValues])

According to @Erik R. / the author

您可以随时调用 form.change('fieldName',undefined) 您想清除该值。

我正在做的是添加一点逻辑以提高代码效率。 因为如果你有很多字段值,你最终会像这样。

form.change('fieldName1',undefined)
form.change('fieldName2',undefined)
form.change('fieldName3',undefined)
form.change('fieldName4',undefined)
and so on..

解决方法

我想我知道为什么了,我返回的是 obj[value] 而不是 value

更新代码

// func to reset field values
  const reset = (obj) => {
    Object.keys(obj).length &&
      Object.keys(obj).forEach((value) => {
        finalFormAPI.change(value,undefined) 
       // I need the value itself not obj[value] or { name: "value"}
      })
  }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。