Похоже, что вам не хватает на самом деле перебрать содержимое или массивы идентификаторов внутри элемента ScrollView
.Исходя из вашей текущей структуры данных, я бы предложил сделать что-то вроде этого.
<ScrollView
horizontal
style={st.cardBody}
>
{detail.content.map((contentValue, i) => (
<View style={st.videoContent}>
<View style={st.videoImage}>
<MaterialCommunityIcons
name="play-circle-outline"
size={25}
color="#fff"
/>
</View>
<Text style={st.subheadingText}>
Title: { contentValue }
Id: { detail.id[i] }
</Text>
</View>
))}
</ScrollView>
Обратите внимание, что я добавил значение из массива id
внутри элемента Text
, чтобы проиллюстрировать, как получить к нему доступ, но также и для того, чтобы показать, что структура данных делает это довольно громоздким, поэтому может быть лучше улучшить эту структуру, возможно вот так
.then(responseData => {
responseData.map(detail => {
let currIndex = -1;
const k = detail.data.curriculum.reduce((acc, curr) => {
if (curr.type === 'section') {
acc.push({
title: curr.title,
content: []
})
currIndex += 1
} else {
acc[currIndex].content.push(curr);
}
return acc;
}, []);
this.setState({ k })
});
});
Таким образом, вам не нужно отслеживать индексмассив при отображении и может просто использовать его как это
{detail.content.map((curr) => (
...
<Text style={st.subheadingText}>
Title: { curr.title }
Id: { curr.id }
</Text>
...
))}