Ich habe vor kurzem die Freude der staatenlosen Komponenten entdeckt. Zum Beispiel macht dies sehr glücklich, mich (und es funktioniert):Arrow Funktionssyntax in Stateless Komponenten reagieren
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
}
ich wäre noch glücklicher, wenn ich die gleiche Komponente der Arbeit mit E6 arrow function syntax machen könnte, etwa so:
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
}
Ich habe gefolgt this video, aber ich kann nicht die Pfeil-Syntax-Version zu arbeiten.
Kann jemand bitte darauf hinweisen, was ich falsch mache?
Im zweiten Beispiel (das gewünschte) exportieren Sie die const-Funktion nicht. –
@NikosParaskevopoulos Ich habe versucht, 'export default' vor' const' hinzuzufügen, aber ich bekomme einen Compilerfehler. –
Der 'export default' ist ein * Operator *, der einen Ausdruck als Argument verwendet ([ref] (http://exploringjs.com/es6/ch_modules.html#_importing-and-exporting-in-detail)); du könntest also 'export default (requisiten, kontext) => ....;' verwenden. Andernfalls können Sie 'const ClassroomsOverview = (Requisiten, Kontext) => ....;' exportieren, aber dies ist ein * benannter * Export, nicht der Standard. Ich stimme Bergi zu, benutze die 'export default function'-Syntax. –