[英]React useState with Array of objects
所以我有 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;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.