Как получить доступ к объекту в массиве с помощью 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)

Другие вопросы по тегам