如何根据对象 属性 和 url 中的路径动态呈现内容
How to dynamically render content based on object property and path in url
我有一个这样的对象数组:
const products = [
{
name: 'prod1',
category: 'cat1',
pageID: 'product-001',
},{
name: 'prod1',
category: 'cat1',
pageID: 'product-001',
},{
name: 'prod1',
category: 'cat1',
pageID: 'product-001',
}];
我正在将这些作为产品列表呈现在我的应用程序中。呈现的产品列表中的每个位置都应该 link 到特定的产品视图。到目前为止,我想出了 pageID
属性,它作为道具传递给 link。工作正常 - 路径正确。
我遇到的问题:
在尝试呈现特定产品视图时,我正在映射我的对象数组。如何检查我的 window.location.pathname
是否与对象之一的 pageID
相同,然后仅获取此对象的名称和类别?
只是 reduce
那个数组到一个对象中,键是 pageID
,值是 name, category
的对象:
const products = [{
name: 'prod1',
category: 'cat1',
pageID: 'product-001'
}, {
name: 'prod2',
category: 'cat2',
pageID: 'product-002'
}, {
name: 'prod2',
category: 'cat2',
pageID: 'product-002'
}];
const pageIDs = products.reduce((a, { name, category, pageID }) => ({ ...a, [pageID]: { name, category }}), {});
let windowPathname = "product-002";
console.log(pageIDs[windowPathname]);
(我编辑了您的示例数据以证明它有效)
我有一个这样的对象数组:
const products = [
{
name: 'prod1',
category: 'cat1',
pageID: 'product-001',
},{
name: 'prod1',
category: 'cat1',
pageID: 'product-001',
},{
name: 'prod1',
category: 'cat1',
pageID: 'product-001',
}];
我正在将这些作为产品列表呈现在我的应用程序中。呈现的产品列表中的每个位置都应该 link 到特定的产品视图。到目前为止,我想出了 pageID
属性,它作为道具传递给 link。工作正常 - 路径正确。
我遇到的问题:
在尝试呈现特定产品视图时,我正在映射我的对象数组。如何检查我的 window.location.pathname
是否与对象之一的 pageID
相同,然后仅获取此对象的名称和类别?
只是 reduce
那个数组到一个对象中,键是 pageID
,值是 name, category
的对象:
const products = [{
name: 'prod1',
category: 'cat1',
pageID: 'product-001'
}, {
name: 'prod2',
category: 'cat2',
pageID: 'product-002'
}, {
name: 'prod2',
category: 'cat2',
pageID: 'product-002'
}];
const pageIDs = products.reduce((a, { name, category, pageID }) => ({ ...a, [pageID]: { name, category }}), {});
let windowPathname = "product-002";
console.log(pageIDs[windowPathname]);
(我编辑了您的示例数据以证明它有效)