Ostatnio odkryłem radość z bezpaństwowych komponentów. Na przykład, to czyni mnie bardzo szczęśliwy (i działa):Składnia funkcji strzałek w React stateless components
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
}
Byłbym jeszcze szczęśliwszy, gdybym mógł zrobić taką samą pracę podzespołów z E6 arrow function syntax, tak:
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
}
mam następnie this video, ale nie mogę uzyskać wersji składni strzałek do pracy.
Czy ktoś może wskazać, co robię źle?
W drugim przykładzie (pożądane) nie eksportujesz funkcji stałej. –
@NikosParaskevopoulos Próbowałem dodać 'export default' przed' const', ale dostaję błąd kompilatora. –
"Domyślne ustawienie eksportu" to operator *, przyjmujący wyrażenie jako argument ([ref] (http://exploringjs.com/es6/ch_modules.html#_importing-and-exporting-in-detail)); więc możesz użyć 'domyślnego eksportu (rekwizyty, kontekst) => ....;'. W przeciwnym razie możesz wyeksportować const ClassroomsOverview = (rekwizyty, kontekst) => ....; ', ale jest to * nazwany * eksport, a nie domyślny. Zgadzam się z Bergi, użyj składni 'export default function'. –