Maison > interface Web > js tutoriel > Les fonctions fléchées peuvent-elles lier de manière permanente les méthodes de classe dans les composants ES6 React ?

Les fonctions fléchées peuvent-elles lier de manière permanente les méthodes de classe dans les composants ES6 React ?

Mary-Kate Olsen
Libérer: 2024-12-10 03:42:16
original
764 Les gens l'ont consulté

Can Arrow Functions Permanently Bind Class Methods in ES6 React Components?

Utiliser les fonctions fléchées comme méthodes de classe avec ES6

Dans le développement d'applications React avec des classes ES6, la liaison des méthodes à l'objet actuel était une pratique courante dans le passé. Cependant, les fonctions fléchées peuvent-elles être utilisées pour lier de manière permanente des fonctions de classe à une instance, en particulier pour les fonctions de rappel ?

Tentative de syntaxe des fonctions fléchées

Auparavant, on liait des méthodes en utilisant une syntaxe telle que :

class SomeClass extends React.Component {
  constructor(){
    this.handleInputChange = this.handleInputChange.bind(this)
  }
}
Copier après la connexion

Tenter d'utiliser les fonctions fléchées à la place :

class SomeClass extends React.Component {
  handleInputChange (val) => {
    console.log('selectionMade: ', val);
  }
}
Copier après la connexion

entraîne erreurs.

Syntaxe correcte

La syntaxe d'utilisation des fonctions fléchées comme méthodes de classe est légèrement différente. Un signe égal est nécessaire après le nom de la propriété :

class SomeClass extends React.Component {
  handleInputChange = (val) => {
    console.log('selectionMade: ', val);
  }
}
Copier après la connexion

Activation des fonctionnalités expérimentales

Cette fonctionnalité est expérimentale et nécessite le plugin Babel transform-class-properties pour être compilé :

{
  "plugins": [
    "transform-class-properties"
  ]
}
Copier après la connexion

Installer le plugin via npm :

npm install --save-dev babel-plugin-transform-class-properties
Copier après la connexion

Utilisation

Avec fonctionnalités expérimentales activées, le passage de SomeClass.handleInputChange en tant que fonction de rappel sera limité à l'instance de classe, et non à l'objet fenêtre.

Pour plus d'informations, reportez-vous à la proposition relative aux champs de classe et aux propriétés statiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal