【问题标题】:Trying to clear my react-final-form fields but I got empty object values instead试图清除我的 react-final-form 字段,但我得到了空对象值
【发布时间】:2021-02-04 14:23:50
【问题描述】:

这是我的场景,我正在清除除 "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..

【问题讨论】:

  • 可能是 const { retainThisObj, ...restValues } = finalFormAPI.values 的问题, ...finalFormAPI.values } ```
  • 嗨,你能把你的评论扩大一点吗?基本上我想清除除特定字段之外的所有字段值。顺便说一句,我已经弄清楚并修复了它。

标签: javascript next.js react-final-form final-form


【解决方案1】:

我想我知道原因了,我返回 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"}
      })
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多