J'ai reçu une galerie avec des images. Sur chaque image, il y a 3 icônes qui sont supposées agir lorsque vous cliquez dessus. J'essaye d'activer l'événement onclick sur les icônes d'image mais rien ne se passe. Les icônes d'image sont créées dans la fonction de rendu avec font-awsome. Je suis nouveau dans JavaScript.
J'ai essayé de rechercher d'autres questions ici sur le site, mais aucune des solutions n'a fonctionné pour moi.
la fonction que je souhaite activer:
render() { return ( <div className="image-root" style={{ backgroundImage: `url(${this.urlFromDto(this.props.dto)})`, width: this.state.size + 'px', height: this.state.size + 'px' }} > <div> <FontAwesome className="image-icon" name="clone" title="clone"/> <FontAwesome className="image-icon" name="filter" title="filter" /> <FontAwesome className="image-icon" name="expand" title="expand" onclick={ this.setNewSize} /> </div> </div> ); } }
4 Réponses :
React utilise la convention CamelCase, vous devez donc mettre onClick = {this.setNewSize}
au lieu de onclick = {this.setNewSize}
. Cela fonctionne-t-il pour vous?
Ce n'est pas une bonne réponse bien que cela résoudra le problème.
Le problème est onclick = {this.setNewSize}
En réaction, cela devrait être onClick , changez comme ceci;
La gestion des événements dans React est similaire à la gestion des événements en HTML, mais il existe quelques différences clés:
J'espère que cela vous aidera, et n'oubliez pas de lier les méthodes.
Ce n'est pas une bonne réponse bien que cela résoudra le problème.
@ShubhamKhatri pouvez-vous expliquer pourquoi? cela pourrait aider.
J'ai ajouté une réponse
Vous devez utiliser onClick mais n'oubliez pas non plus de lier le setNewSize, vous pouvez le faire de trois manières
1. onclick = {this.setNewSize.bind (this)}
2. constructeur (accessoires) {
super (accessoires);
this.setNewSize = this.setNewSize.bind (this);
}
3. const setNewSize = () => {....}
Il y a peu de choses que vous devez savoir
Les attributs passés à un composant de réaction personnalisé sont transmis au composant en tant qu'accessoires et, à moins qu'ils ne soient utilisés dans le composant et transmis aux éléments DOM, ils n'auront aucun effet. Pour en savoir plus sur cette vérification, ce message
3.Vous devez lier les méthodes soit dans le constructeur, soit en utilisant la fonction de flèche pour utiliser this
correctement dans celui-ci.
Pour résoudre le problème ci-dessus, vous devez vérifier la documentation du composant si vous l'utilisez depuis une bibliothèque et voir quels accessoires il faut pour traiter un événement onClick. Selon toute probabilité, ce sera onClick
dans le cas du chameau.
Si vous avez écrit le composant vous-même, assurez-vous de suivre les instructions de l'article lié pour résoudre le problème. transmettez l'accessoire comme un pair à l'élément DOM.