【发布时间】:2021-07-13 10:57:01
【问题描述】:
我从服务器收到 JSON 响应,如下所示:
{
"value_1": "a",
"value_2": "b",
"pagination": {
"titles": [
"Title 1",
"Title 2",
"Title 3",
"Title 4",
"Title 5"
]
},
"slides": [
{
"pagination_id": 0,
"content": {
"heading": "Welcome!",
"description": "Stuff goes here",
"image": {
"url": "<image_url>",
"alt": "alternative text"
},
"next": {
"label": "Next"
}
}
},
{
"pagination_id": 1,
"content": {
"heading": "About",
"description": "Stuff goes here",
"image": {
"url": "<image_url>",
"alt": "alternative text"
},
"next": {
"label": "Next"
}
}
},
{
"pagination_id": 2,
"content": {
"heading": "Welcome!",
"description": "Stuff goes here",
"groups": [
{
"id": 1,
"label": "Group 1"
},
{
"id": 2,
"label": "Group 2"
},
{
"id": 3,
"label": "Group 3"
}
],
"next": {
"label": "Next"
}
}
},
{
"pagination_id": 3,
"heading": "Welcome!",
"description": "Stuff goes here",
"image": {
"url": "<image_url>",
"alt": "alternative text"
},
"back": {
"label": "Back"
},
"next": {
"label": "Next"
}
},
{
"pagination_id": 4,
"heading": "Welcome!",
"description": "Stuff goes here",
"image": {
"url": "<image_url>",
"alt": "alternative text"
},
"back": {
"label": "Back"
},
"next": {
"label": ""
}
}
],
"footer": {
"legal": {
"label": "Legal",
"url": "<url>"
},
"privacy": {
"label": "Privacy",
"url": "<url>"
},
"cookies": {
"label": "Cookies",
"url": "<url>"
}
}
}
正如您可能知道的那样,此数据用于创建轮播,每张幻灯片上都显示幻灯片内容。我遇到的问题是幻灯片标题来自 JSON 的 pagination 部分,但包括下一步和后退按钮在内的实际幻灯片内容来自 slides 部分。
目前我有一些问题:
- 我需要为每张幻灯片获取正确的标题。
- 我需要根据每张幻灯片中的
next和back属性来呈现按钮。 - 当单击按钮前进或后退时,我需要跟踪应该显示的幻灯片。
我已经知道我需要为第 1 部分做的是使用幻灯片的 pagination_id 从 pagination.titles 数组中获取正确的标题,但我不完全确定最好的解决方法。
对于第二部分,我认为应该也可以使用pagination_id 来跟踪当前幻灯片(我认为),但我不知道该怎么做。我应该提到每张幻灯片的按钮将根据每张幻灯片的next 和back 属性进行渲染。
这个应用程序是用React 构建的,我目前只使用本地状态,因为我不认为像Redux 这样的东西真的值得包含这么少量的数据。
任何有关此难题的帮助将不胜感激,
感谢您的宝贵时间
【问题讨论】:
标签: arrays json reactjs carousel