React Native: невозможно отобразить компоненты подряд с помощью flex box

Я использую response-native-swipeout для элементов в FlatList, каждый элемент списка имеет кнопки "минус" и "плюс" по обе стороны от текста (верхнее изображение).

Однако при добавлении этих компонентов в качестве дочерних компонентов компонента Swipeout все они располагаются друг над другом и слева от ряда (нижнее изображение).

введите описание изображения здесь

Есть что-то, чего я здесь не хватает?

<Swipeout
   style={styles.swipeStyle}
   {...swipeSettings}>
      <View style={styles.buttonContainer}>
          <MinusButton />
      </View>
      <View style={styles.itemStyle}>
          <Text>{this.props.name}</Text>
      </View>
      <View style={styles.buttonContainer}>
           <PlusButton />
      </View>
</Swipeout>

const styles = {
  swipeStyle: {
    flex: 1,
    flexDirection: 'row',
    flexWrap: 'nowrap',
    justifyContent: 'flex-start',
    alignItems: 'flex-start'
  },
  buttonContainer: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    padding: 5,
  },
  itemStyle: {
    flex: 1,
  }
};

1 ответ

Решение

Если вы посмотрите на исходный код, есть еще один внутренний контейнер, который оборачивает дочерние элементы, и вы не можете напрямую установить style внутреннего контейнера.

Я предлагаю обернуть ваших детей в <View /> лайк:

<Swipeout {...swipeSettings}>
   <View style={styles.swipeStyle}>
      <View style={styles.buttonContainer}>
          <MinusButton />
      </View>
      <View style={styles.itemStyle}>
          <Text>{this.props.name}</Text>
      </View>
      <View style={styles.buttonContainer}>
           <PlusButton />
      </View>
   </View>
</Swipeout>
Другие вопросы по тегам