繁体   English   中英

用对象数组反应 useState

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM