Je suis nouveau à ES6 et à React et je continue à voir des fonctions de flèche. Pourquoi est-ce que certaines fonctions de la flèche utilisent des accolades lorsque la flèche en graisse et certains utilisent des parenthèses? Par exemple:
const foo = (params) => ( <span> <p>Content</p> </span> );
contre.
const handleBar = (e) => { e.preventDefault(); dispatch('logout'); };
Merci pour toute aide!
Les parenthèses renvoient une valeur unique, les accolades exécutent plusieurs lignes de code.
Votre exemple semble déroutant car il utilise JSX qui ressemble à plusieurs "lignes", mais qui vient tout simplement d'être compilé sur un seul "élément".
Voici d'autres exemples qui font la même chose:
const a = (who) => "hello " + who + "!"; const b = (who) => ( "hello " + who + "!" ); const c = (who) => { return "hello " + who + "!"; };
Vous verrez également des parenthèses autour des littéraux d'objets, car c'est un moyen d'éviter que l'analyseur le traite comme un bloc de code:
const x = () => {} // Does nothing const y = () => ({}) // returns an object