【发布时间】:2021-05-24 19:16:38
【问题描述】:
我正在使用 mongoose 与 next.js 和 react-query 从数据库中预取产品。我想知道为什么我需要对嵌套对象进行深层复制才能为其添加键:值。否则它不起作用。让我知道我不明白的地方。
await queryClient.prefetchQuery(['productSlug', slug], async () => {
const product = await read(slug);
const existingRatingObject = product.ratings.find(
(item) => item.postedBy.toString() === user._id.toString()
);
const copyProduct = JSON.parse(JSON.stringify(product));
if (existingRatingObject) {
copyProduct.star = existingRatingObject.star;
} else {
copyProduct.star = 0;
}
console.log({ copyProduct });
return JSON.stringify(copyProduct);
});
【问题讨论】:
-
你认为你为什么需要这样做? “它不起作用”到底是什么意思?
-
当我尝试添加一个新的 key:value 时没有深层副本它不起作用。我不知道为什么。
-
“它不起作用”是什么意思?会发生什么?任何事物?是否报告了错误?
-
什么也没发生。没有错误。没有新键:添加到对象的值。
标签: javascript reactjs next.js react-query