React Native:无法使用 flex box 连续渲染组件

React Native: Unable to render components in a row with flex box

我正在对 FlatList 中的项目使用 react-native-swipeout,每个列表项目在文本的两侧都有一个 'minus' 和 'plus' 按钮(上图)。

但是,当将这些组件添加为 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,
  }
};

如果你看source code,还有一个内胆包裹着children,你不能直接设置内胆的style

我建议将您的 children 包装成 <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>