如何解决更新商店内数组中每个项目的好方法
我在svelte的数据存储区中有一个对象数组,我想更新数组中每个对象的一个属性,即我想将存储区中的author属性更新为当前用户名,这就是我目前正在做的事情:
let tempArray = $myReviewDataStore;
for(var i=0; i < tempArray.length; i++){
tempArray[i].author = username;
}
myReviewDataStore.update(data =>{
return tempArray;
})
一定有更好的方法来做到这一点,对吧?
谢谢!
解决方法
这只是一种较短的方法:
$myReviewDataStore = $myReviewDataStore.map(
obj => ({...obj,author: username})
);
,
嗯,我想您真的不需要逻辑的第一部分,因为data
道具包含store value:
update是一种采用一个参数(即回调)的方法。回调将现有商店值作为其参数,并返回要设置为商店的新值。
因此,您可以将其缩短:
myReviewDataStore.update(data => data.map(state => ({...state,author: username }) ));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。