React-native:如何在触摸扁平化项目时突出显示它

罗伯茨

我有一个平面列表,我希望背景色在触摸时会出现在列表中的某个项目上。见下图;如果我触摸“ game_name3”,将会发生以下情况:

在此处输入图片说明

但是什么也没发生。它保持看起来像左侧的屏幕。

这是我的代码:

constructor (props) {
    super(props);
    this.state = {
        ...
        game_names: [
            {game_name:"game_name1", players:4},
            {game_name:"game_name2", players:4},
            {game_name:"game_name3", players:4},
            {game_name:"game_name4", players:4},
            {game_name:"game_name5", players:4},
            {game_name:"game_name6", players:4},
        ],
        game_selected: '',
        ...
    }
}
...
selectPublicGame = (game) => {
    this.setState({game_selected: game});
}

renderItem = ({item}) => {
  const unselected_game =
  <View style={{flexDirection: 'row', flex: .5, justifyContent: 'space-between'}}>
    <Text style={[styles.listText, styles.textPaddingHorizontal]}>
      {item.game_name}
    </Text>
    <Text style={[styles.listText, styles.textPaddingHorizontal]}>
      ({item.players}/6)
    </Text>
  </View>;

  const selected_game =
  <View style={{flexDirection: 'row', flex: .5, justifyContent: 'space-between', backgroundColor: colors.JBTealTrans}}>
      <Text style={[styles.listText, styles.textPaddingHorizontal]}>
        {item.game_name}
      </Text>
      <Text style={[styles.listText, styles.textPaddingHorizontal]}>
      ({item.players}/6)
    </Text>
  </View>;

  let selection;

  if (item.game_name == this.state.game_selected) {
      selection = selected_game
  } else {
      selection = unselected_game
  }

  return (
    <TouchableWithoutFeedback
      onPress={() => this.selectPublicGame(item.game_name)}
    >
      {selection}
    </TouchableWithoutFeedback>
  )
}
...
render() {
  ...
  return(
    ...
    <FlatList
      data={this.state.game_names}
      renderItem={this.renderItem}
      keyExtractor={(item, index) => index.toString()}
    />
    ...
  )
}
...

平面列表中的每个项目都包装在TouchableWithoutFeedback中,onPress将game_selected状态设置为所选的游戏名称。这些项目是有条件渲染的。如果游戏名称与game_selected状态相同,则应呈现“ selected_game”常量,该常量具有backgroundColor样式,但由于某种原因未执行任何操作。

FlatList是一个纯组件,只有在对其dataextraDataprops进行严格的相等性检查返回时才重新渲染false由于您的组件渲染依赖于此state.game_selected,因此需要包含在extraData

<FlatList
      data={this.state.game_names}
      renderItem={this.renderItem}
      keyExtractor={(item, index) => index.toString()}
      extraData={this.state.game_selected}
    />

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在React Native中突出显示单个按钮?

来自分类Dev

React Native-获取选择了可触摸的突出显示

来自分类Dev

开始滚动时,使TouchableOpacity不突出显示元素[React Native]

来自分类Dev

如何在 React-Native FlatList 中突出显示搜索结果?

来自分类Dev

如何在 React Native 中“堆叠”触摸事件

来自分类Dev

如何在IntelliJ中停止扁平API的扁平化

来自分类Dev

如何在React Native中显示图标?

来自分类Dev

如何在React Native中显示从列表中选择的多个项目

来自分类Dev

如何在RDD中扁平化列表?

来自分类Dev

如何在python中扁平化列表?

来自分类Dev

熊猫如何在agg函数后使列扁平化?

来自分类Dev

当在react native中打开键盘时,如何在textinput下面显示组件?

来自分类Dev

如何在React Native中模拟“对齐项目:基线”?

来自分类Dev

如何在React Native上启动项目

来自分类Dev

如何在 React Native 的 RadioGroup 中获取所选项目?

来自分类Dev

如何在 React-native 项目中插入 expo 模块?

来自分类Dev

如何在 windows 中启动克隆的 react-native 项目

来自分类Dev

Fresh React-Native项目显示白屏

来自分类Dev

如何在React Native中显示动画gif?

来自分类常见问题

如何在React Native App中显示超链接?

来自分类Dev

如何在react-native android应用中显示GIF?

来自分类Dev

如何在React Native中显示获取的数据

来自分类Dev

如何在React Native的两栏中显示卡片?

来自分类Dev

如何在React Native中按组显示数组值

来自分类Dev

如何在React Native中水平显示来自API的数据

来自分类Dev

如何在React Native中显示一次屏幕?

来自分类Dev

如何在React Native中显示来自Firebase Firestore的数据

来自分类Dev

如何在 React Native 中显示底部导航上方的组件?

来自分类Dev

如何在 React Native 中显示渐变 SVG 图像

Related 相关文章

  1. 1

    如何在React Native中突出显示单个按钮?

  2. 2

    React Native-获取选择了可触摸的突出显示

  3. 3

    开始滚动时,使TouchableOpacity不突出显示元素[React Native]

  4. 4

    如何在 React-Native FlatList 中突出显示搜索结果?

  5. 5

    如何在 React Native 中“堆叠”触摸事件

  6. 6

    如何在IntelliJ中停止扁平API的扁平化

  7. 7

    如何在React Native中显示图标?

  8. 8

    如何在React Native中显示从列表中选择的多个项目

  9. 9

    如何在RDD中扁平化列表?

  10. 10

    如何在python中扁平化列表?

  11. 11

    熊猫如何在agg函数后使列扁平化?

  12. 12

    当在react native中打开键盘时,如何在textinput下面显示组件?

  13. 13

    如何在React Native中模拟“对齐项目:基线”?

  14. 14

    如何在React Native上启动项目

  15. 15

    如何在 React Native 的 RadioGroup 中获取所选项目?

  16. 16

    如何在 React-native 项目中插入 expo 模块?

  17. 17

    如何在 windows 中启动克隆的 react-native 项目

  18. 18

    Fresh React-Native项目显示白屏

  19. 19

    如何在React Native中显示动画gif?

  20. 20

    如何在React Native App中显示超链接?

  21. 21

    如何在react-native android应用中显示GIF?

  22. 22

    如何在React Native中显示获取的数据

  23. 23

    如何在React Native的两栏中显示卡片?

  24. 24

    如何在React Native中按组显示数组值

  25. 25

    如何在React Native中水平显示来自API的数据

  26. 26

    如何在React Native中显示一次屏幕?

  27. 27

    如何在React Native中显示来自Firebase Firestore的数据

  28. 28

    如何在 React Native 中显示底部导航上方的组件?

  29. 29

    如何在 React Native 中显示渐变 SVG 图像

热门标签

归档