0
votes

Changer la couleur de TouchableOpacity dans React Native

Quelqu'un peut-il m'aider? Ceci est mon code source: https://snack.expo.io/rjfgyPdph

idée est que, si je clique sur " 1 bouton ", il devrait être "rouge" et si je clique sur "2 bouton" doit également changer sa couleur à 'rouge' mais le bouton "1" doit être modifié par sa couleur par défaut qui est noire. Cependant, "2 bouton" .

Si mon approche est trop simple, d'autres méthodes (telles que TouchableHighlight , ES6 et etc.) sont également accueillies. J'apprécie si tu me fais me montrer des erreurs afin que j'apprends de cela.


9 commentaires

Il n'y a pas de bouton / opacité touchante dans votre application ... s'il vous plaît jeter un oeil une fois dans votre code


Merci d'avoir mentionné, j'ai mis à jour, vérifiez-le


pouvez-vous s'il vous plaît indiquer ce que vous voulez .... il n'est pas clair dans votre question ... s'il vous plaît élaborer sur les cas que vous voulez


Je veux changer la couleur de fond de TouchablePacity en cliquant dessus. Imaginez, vous avez deux boutons et les deux ont une couleur de fond «noire». Si vous cliquez sur le premier bouton, il devrait être "rouge", mais deuxièmement, reste comme "noir". Par conséquent, si vous cliquez sur le bouton secondaire, il devrait être "rouge", alors que le premier bouton doit être "noir". Je suppose que maintenant c'est plus clair, si non me dit.


Donc, disons le bouton 1 est rouge et le bouton 2 est noir puis j'ai cliqué sur 2 le. Il devient rouge et puis sur quoi arrivera-t-il 1?


Il devient «noir» comme défaut. Parce qu'au début était noir, il s'agit de boutons actifs et inactifs.


Vous voulez donc un changement de couleur de bouton alternatif pour le bouton .... Si l'un est noir et qu'un autre est rouge, cliquez sur n'importe qui annulera la couleur du bouton?


exactement abhikumar


Initialement les deux seront noirs?


4 Réponses :


1
votes

Vous pouvez écrire votre code comme: xxx

maintenant si vous cliquez sur le premier bouton, il devrait être "rouge", mais il reste en arrière-plan "noir". Par conséquent, si vous cliquez sur le deuxième bouton, il doit être "rouge", alors que le premier bouton doit être "noir".


0 commentaires

2
votes

Essayez ci-dessous

state={
    selectedButton: '',
};

      <View style={styles.container}>
          <TouchableOpacity
              style={{ backgroundColor: this.state.selectedButton === 'button1' ? 'red' : 'black', padding: 15}}
              onPress={() => this.setState({ selectedButton: 'button1' })}
          >
            <Text style={styles.text}>1 Button</Text>
          </TouchableOpacity>

          <TouchableOpacity
              style={{ backgroundColor: this.state.selectedButton === 'button2' ? 'red' : 'black', padding: 15}}
              onPress={() => this.setState({ selectedButton: 'button2' })}
          >
            <Text style={styles.text}>2 button!</Text>
          </TouchableOpacity>

      </View>


1 commentaires

J'aime ta réponse, cela répond parfaitement à l'exigence. Depuis Ravi Sharma d'abord posté la réponse, j'ai souligné sa réponse en tant que solution. Merci, d'avoir fait cela de manière simple)



1
votes
  onPress={()=>this.changeColor()}

0 commentaires