android - react-Native 更改平面列表中所选项目的颜色

标签 android ios react-native

我有一个呈现多个按钮的平面列表,我想在 esee 平面列表中标记所选按钮,我尝试了很多东西,但在所有这些平面列表中,一旦我选择一个,平面列表就会标记所有项目,除此之外,它不会更新,直到我更新组件中的某些内容并保存更改,然后它会进行热重新加载,这就是标记项目的显示方式

 constructor(props) {
    super(props);
    this.state = {
       pressStatus: false,
    };

    _onShowUnderlay(){
       this.setState({ pressStatus: true });
    }

    render() {
       return (
          <FlatList
                    keyExtractor={this._keyExtractor}
                    data={this.state.ninosPicker}
                    renderItem={({item}) => (
                       <View style={styles.hijos}>
                          <TouchableHighlight
                             activeOpacity={1}
                             underlayColor="#3fa9f5"
                             onShowUnderlay={this._onShowUnderlay.bind(this)}
                             style={this.state.pressStatus ? styles.buttonPress : styles.botonsito }
                             onPress={() => this.setHijo(item.grado, item.grupo)}>
                                 <Text style={this.state.pressStatus ? styles.welcomePress : styles.titBtnGyG }>{item.name}</Text>
                           </TouchableHighlight>
                           <TouchableHighlight
                              activeOpacity={1}
                              underlayColor="#3fa9f5"
                              style={this.state.pressStatus ? styles.gradosPress : styles.grados }>
                                  <Text style={this.state.pressStatus ? styles.welcomePress : styles.titBtnGyG }>{item.grado}</Text>
                           </TouchableHighlight>
                           <TouchableHighlight
                               activeOpacity={1}
                               underlayColor="#3fa9f5"
                               style={this.state.pressStatus ? styles.grupoPress : styles.grupo }>
                                   <Text style={this.state.pressStatus ? styles.welcomePress : styles.titBtnGyG }>{item.grupo}</Text>
                           </TouchableHighlight>
                       </View>
                      )}/>

最佳答案

你必须考虑到在编码中你放置了一个独特的状态,在这种情况下是 this.state.pressStatus,你需要的是在每个对象的排列中有一个属性 pressStatus,在执行时按钮的 Action 你必须改变那个按钮的状态

关于android - react-Native 更改平面列表中所选项目的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45601413/

相关文章:

iphone - 丢失导航 Controller 如何打开另一个 View

ios - 无法为 arm (iOS) 交叉编译 C 库

java - 相对于当前日期对 Java 集合进行排序

android - 获取 SQLite 中列值的总和

ios - UITableView 滚动时崩溃(iOS 7.1.2)

reactjs - 如何使用 Jest 和 Enzyme 测试 child 文本组件

ios - React Native Image 有时无法工作

javascript - 在 onPress 上使用时 this.setState 不是一个函数

java - 如何使用两个回调来停止 ProgressBar?

android - 当我也可以在没有它的情况下懒洋洋地膨胀 View 时,ViewStub 有什么意义?