如何更新单个哈希。当我尝试更改哈希中的值时,它不会改变。由于哈希是只读的,但是当我在数组中这样做时,它可以工作。在当前情况下,我只有哈希。
subscribeToMore(
{
document: postUpdated,
updateQuery: (previousResult, { subscriptionData }) => {
if (subscriptionData.data.postUpdated) {
console.log("------Updated hash------",subscriptionData.data.postUpdated);
previousResult.property.water_heater = subscriptionData.data.postUpdated.water_heater;
// readonly unable to assign
return subscriptionData;
}else{
return previousResult;
}
},
}
)
但是有了这个代码,它可以工作
subscribeToMore(
{
document: postUpdated,
updateQuery: (previousResult, { subscriptionData }) => {
previousResult.posts = previousResult.posts.map((post) => {
if(post._id === subscriptionData.data.postUpdated._id) {
return subscriptionData.data.postUpdated
} else {
return post
}
})
return previousResult
},
}
)
在第一个代码中,您正在改变previousResult.property
,在第二个代码中,您正在改变previousResult
。
我认为如果你这样做它会起作用
subscribeToMore({
document: postUpdated,
updateQuery: (previousResult, { subscriptionData }) => {
if (subscriptionData.data.postUpdated) {
console.log("------Updated hash------", subscriptionData.data.postUpdated);
previousResult.property = {
...previousResult.property,
water_heater = subscriptionData.data.postUpdated.water_heater;
}
}
return previousResult;
},
})