React Native从可用数据中构造一个对象



我正在使用一个具有特定对象结构的库,它看起来像这样:

const libraryTemplateData = [
{
eventContainerStyle: {
style: {
opacity: 1,
},
},
title: {
content: "Title Item #1",
},
description: {
content: "Description Item #2",
},
time: {
content: "Time Item #2",
style: { opacity: 1 },
},
icon: {
style: {
opacity: 1,
},
},
},
{
title: {
content: "Title Item #2",
},
description: {
content: "Description Item #2",
},
time: {
content: "Time Item #2",
},
},
{
title: {
content: "Title Item #3",
},
description: {
content: "Description #3",
},
time: {
content: "Time Item #3",
},
},

等等…

我也有一个数据,我从API调用接收(不能在DB级别重组它以匹配libraryTemplateData):

{
"data": [
{
"ID": "59732379",
"TIME": "16:00",
"TITLE": "Item Title #1",
"DESCRIPTION": "Description Item #1"
},
{
"ID": "59732361",
"TIME": "18:00",
"TITLE": "Title Item #2",
"DESCRIPTION": "Description Item #2"
}
],
"result": 0,
"resultdescription": "OK"

}

等等…

如何将data映射到libraryTemplateData中的对象类型?我还需要更改data[0]中的属性,正如您在libraryTemplateData[0]中看到的那样。必须设置不透明度以达到"亮起来"的效果。的效果。data[0]之后的元素默认为opacity:0

你可以使用一个简单的map来实现它:

const libraryTemplateData = data.map((item, index) => ({
eventContainerStyle: {
style: {
opacity: index === 0 ? 1 : 0,
},
},
title: {
content: item.TITLE,
},
description: {
content: item.DESCRIPTION,
},
time: {
content: item.TIME,
style: {
opacity: index === 0 ? 1 : 0,
},
},
icon: {
style: {
opacity: index === 0 ? 1 : 0,
},
},
}));

最新更新