javascript - 将 useState 与对象数组反应
问题描述
所以我有 3 个输入,我想在更新 onChange 输入属性时获取它们的状态,我想要获取的状态应该是这样的:[{lang: (inputName), text: (inputValue)}, ..]
.
我尝试了什么:
function onChange = (name, value) => {
setState(prevState => [...prevState, {lang: name, text: value} ])
}
我认为解决方案是过滤prevState
,因为只有 3 个输入,我可以根据name
键过滤数组。并仅显示具有真正密钥的对象(不重复的对象)。
解决方案
很难从您的问题中分辨出来,但我认为您要问的是如何更新数组内对象的“文本”值?
如果是这样,您可以执行以下操作:
function onChange = (name, value) => {
setState(prevState => {
let stateCopy = [...prevState];
const index = stateCopy.findIndex(obj => obj.lang === name);
stateCopy[index] = {...stateCopy[index], text: value};
return stateCopy;
}
}