Recentemente ho scoperto la gioia dei componenti senza stato. Per esempio, questo mi rende molto felice (e funziona):Sintassi della funzione di freccia nei componenti statici di React
import { Component, PropTypes } from 'react';
export default function ClassroomsOverview(props, context) {
return (
<div>
<p>{context.classrooms.data.length} Classrooms.</p>
<p>{context.classrooms.members.length} Students</p>
</div>
);
}
ClassroomsOverview.contextTypes = {
classrooms: PropTypes.object
}
sarei ancora più felice se ho potuto fare lo stesso lavoro componente E6 arrow function syntax, in questo modo:
import { Component, PropTypes } from 'react';
const ClassroomsOverview = (props, context) => (
<div>
<p>{context.classrooms.data.length} Classrooms.</p>
<p>{context.classrooms.members.length} Students</p>
</div>
);
ClassroomsOverview.contextTypes = {
classrooms: PropTypes.object
}
ho seguito this video, ma non riesco a far funzionare la versione della sintassi delle frecce.
Qualcuno può segnalare cosa sto facendo di sbagliato, per favore?
Nel secondo esempio (il desiderato) non si sta esportando la funzione const. –
@NikosParaskevopoulos Ho provato ad aggiungere "export default" davanti a 'const' ma ottengo un errore del compilatore. –
L''esportazione predefinita' è un * operatore *, prendendo un'espressione come argomento ([ref] (http://exploringjs.com/es6/ch_modules.html#_importing-and-exporting-in-detail)); quindi potresti usare 'export default (props, context) => ....;'. Altrimenti puoi esportare const ClassroomsOverview = (props, context) => ....; ', ma questo è un * nome * export, non il default. Sono d'accordo con Bergi, usa la sintassi 'export default function'. –