javascript - 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;
});
解决方案
你可以试试这个:
const resetErrors = () => {
let newObject = {...fields};
Object.keys(newObject).map(key => {
obj[key].error = ''
})
return newObject;
}
.
.
.
setFields(resetErrors());
推荐阅读
- python - 使用 Python 从 Azure 表存储中的表中获取最旧的 n 行
- excel - 意外的日期结果 - Excel VBA - 日月年混淆
- ssl - SEC_ERROR_REVOKED_CERTIFICATE 错误仅在 PC Firefox 上
- macos - 如何标准化指向 APFS 卷组成员的路径
- react-native - 带有 React Native 的键盘和模式(UI Kitten)
- java - Spring boot JpaRepository manytomany findBy 包含列表参数中的所有值
- apache-superset - 如何将 SuperSet UI 集成到 React 应用程序中
- linux - 有没有办法通过linux命令将ruby文件中的变量“gitlab_rails['omniauth_enabled']=false更改为“true”
- algorithm - 覆盖 n 个点的最小圆数
- elasticsearch - 通过特定字段搜索时,ElasticSearch 不返回任何结果