首页 > 解决方案 > React:遍历对象并更改某些属性

问题描述

我有这个useState:

const [fields, setFields] = useState({
  name: {
    value: '',
    error: ''
  },
  lastName: {
    value: '',
    error: ''
  },
  phone: {
    value: '',
    error: ''
  }
});

好的,在某些时候,我想重置所有错误,所以我可以这样做:

setFields(prev => {
  for (let key in prev) prev[key].error = '';
  return prev;
});

但由于某种原因,这不起作用......

好吧,有人建议做这个解决方案,它奏效了:

setFields(prev => {
    const copy = { ...prev };
    for (let key in copy) copy[key].error = '';
    return copy;
  });

标签: javascript

解决方案


你可以试试这个:

const resetErrors = () => {
let newObject = {...fields};
Object.keys(newObject).map(key => {
  obj[key].error = ''
})
return newObject;
}
.
.
.
setFields(resetErrors());

推荐阅读