Как получить доступ к объекту в массиве с помощью this.state в React Native?
Я использую response-native-snap-carousel и не могу получить доступ к URL-адресам в массиве. Я могу получить к ним доступ без других объектов, но мне нужно, чтобы они называли каждое изображение.
constructor(props)
{
super(props);
this.state = {
categoriesimages: [
{
name: 'business 1',
images:
'http://www.example.com/img/venture.jpg',
},
{
name: 'business 2',
images:
'http://www.example.com/img/venture.jpg',
},
{
name: 'business 3',
images:
'http://www.example.com/img/venture.jpg',
}
]
}
renderItem = ({ item }) => {
return (
<Image source={{ uri: item }} style={styles.logoStyle} />
);
}
<View>
<Carousel
inactiveSlideOpacity={0.6}
inactiveSlideScale={0.65}
firstItem={1}
sliderWidth={width}
itemWidth={width / 3}
data={this.state.categoriesimages['images']} // this is the problem
renderItem={this.renderItem}
containerCustomStyle={{ overflow: 'visible' }}
contentContainerCustomStyle={{ overflow: 'visible' }}
/>
</View>
Я все еще новичок, чтобы реагировать на нативные вопросы, и поиск похожих вопросов не привел к правильному ответу.
2 ответа
Решение
Вот this.state.categoriesimages['images']
параметр данных принимает array
формат.
Прямо сейчас вы пытаетесь получить доступ к categoriesimages
с индексом как images
Поэтому вам нужно заменить его на
data={this.state.categoriesimages}
а также
renderItem={({item}) => console.log(item.images)}
Вы можете использовать карту для этого this.state.categoriesimage.map(value => value.image)