如何解决如何在反应状态对象功能组件中附加键/值
我有一个状态
const [options,setOptions] = useState({});
我想向对象附加一个键/值,同时保留我之前推送的键/值
这不起作用:
array.map((value,index) => { // consider array has some data
setOptions({...options,[index]: value})
});
例如,假设我已经推送了 {0: "Zero"} 下次我推送 {1: "One"} 时,它应该保留 {0: "Zero"}
解决方法
要执行此操作,您需要先获取旧数据并将其存储在变量中,然后进行更新,然后再次设置选项:
例如:
let tempOptions = options;
array.map((value,index) => { // consider array has some data
tempOptions[index] = value;
});
setOptions(tempOptions);
你可以用另一种方式做到这一点:
setOptions(prev => {...prev,newValue});
永远记住你正在处理状态,并且你不能直接更新状态并且要小心很多状态更新......
,尝试在新对象中添加新值,然后设置一次 setOptions。不要尝试在数组映射中设置选项。
var newOptions = {}
array.map((value,index) => { // consider array has some data
newOptions[index] = value
});
setOptions({...options,...newOptions})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。