提问人:coderman123 提问时间:6/22/2023 最后编辑:coderman123 更新时间:6/22/2023 访问量:642
React 钩子形式 setValue null 不起作用
React hook form setValue null not working
问:
我正在尝试使用react hook form setValue将等于空字符串的每个值设置为null,但它不起作用。
有什么修复方法吗?
const onSubmit = data => {
for (const [key, value] of Object.entries(data)) {
if (value === '') {
setValue(key, null)
}
}
(Method here for sending data to api)
reset();
}
}
编辑:
我为我的问题找到了这个解决方法:
const onSubmit = data => {
let newData = data;
Object.keys(newData).forEach((field) => {
if (newData[field] === '') {
newData[field] = null
}
})
/Method for api here
reset();
}
答:
0赞
Paul-Marie
6/22/2023
#1
假设是你的一个钩子,你是这样创建的:setValue
const [value, setValue] = useState();
那么你不能使用多个,我的意思是,如果你使用:setValue
setValue("toto");
setValue("tata");
setValue("titi");
在一个函数中,则只会更改一次,更改为最后一个值(此处为“titi”)。value
因此,您需要将类型更改为数组/对象,并且仅对修改后的对象执行 1,例如:value
setValue
const array = Object.entries(data).map(([key, value]) => value === '' ? null : value);
setValue(array);
评论
0赞
coderman123
6/23/2023
嘿,setValue 是 React Hook Form 中用于更新 formState 的函数。我让它工作了,但无论如何都要感谢:)
0赞
Paul-Marie
6/26/2023
@coderman123是的,我知道这是一个基本函数,你知道如何使用它,我认为你错过了我帖子的要点,因为它不是关于“如何使用 setValue”的教程,而是对“不要在循环中使用 setValue,因为只会设置最后一个值,您可以在 useState 或函数中执行 1000 setValue(), 但只会执行最后一个
评论