0

我在 Svelte 的数据存储中有一个对象数组,我想更新数组中每个对象中的一个属性,即我想将存储中数组中的 author 属性更新为当前用户名,这是我目前在做什么:

let tempArray = $myReviewDataStore;
for(var i=0; i < tempArray.length; i++){
    tempArray[i].author = username;
}
myReviewDataStore.update(data =>{
    return tempArray;
})

必须有更好的方法来做到这一点,对吧?

谢谢!

4

2 回答 2

3

这只是一种更短的方法:

$myReviewDataStore = $myReviewDataStore.map(
 obj => ({...obj, author: username})
);
于 2020-10-18T22:35:38.580 回答
3

嗯,我猜你并不真的需要你的逻辑的第一部分,因为data道具包含存储值

update 是一种方法,它接受一个作为回调的参数。回调将现有的存储值作为其参数,并返回要设置到存储的新值。

所以你可以缩短它:

myReviewDataStore.update(data => data.map(state => ({...state, author: username }) ));
于 2020-10-19T09:30:19.917 回答