【发布时间】:2020-11-17 04:11:36
【问题描述】:
我正在尝试在购物车更新时从 Shopify Webhook 获取数据。它一直有效,直到我尝试映射我得到的响应。
显示错误:TypeError: Cannot read property 'map' of undefined.
但是,如果我 console.log() 数据,它会按应有的方式显示数组。但还是不能 map() 它。
async afterAuth(ctx) {
...
const { shop, accessToken } = ctx.session;
ctx.cookies.set('shopOrigin', shop, {
httpOnly: false,
secure: true,
sameSite: 'none'
});
await getSubscriptionUrl(ctx, accessToken, shop);
const webhook = receiveWebhook({ secret: SHOPIFY_API_SECRET_KEY });
router.post('/webhooks/carts/update', webhook, (ctx) => {
// This console log works
console.log(ctx.state.webhook);
const cartProducts = ctx.state.webhook.payload.line_items.product_id;
// This console log is not working = undefined
console.log('cartProducts: >>> ',cartProducts);
var productListIds = cartProducts.map(item => {
var product = item.product_id.toString();
return product
})
console.log('ARRAY OF PRODUCT IDS: ',productListIds);
});
...
我希望“cartProducts”可用于 map()。 async/await 有帮助吗?如果是,我该如何实现?
提前致谢
【问题讨论】:
-
你做了console.log(ctx)吗?如果你做了,结果是什么?
-
@dshung1997 谢谢,原来我试图访问空数据,因为 line_items 有一个项目数组(product_id)。因此,通过删除查询中的 .product_id 就可以了。喜欢下面的答案。
标签: javascript reactjs react-router webhooks shopify-app