问题描述
这是我的场景,我在初始页面加载时清除除 "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"}
})
}