我最近发现了无状态组件的乐趣。例如,这让我感到非常高兴(而且它也有效):
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
}
如果我能让同一个组件使用E6箭头函数语法,我会更加高兴:
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
}
我已经按照这个视频所示进行操作,但箭头语法版本无法运行。
请问有人可以指出我的错误吗?
export default
是一个 操作符,它以表达式作为参数(参考);因此你可以使用export default (props, context) => ....;
。否则,你可以使用export const ClassroomsOverview = (props, context) => ....;
,但这是一个 命名 导出,而不是默认导出。我同意 Bergi 的观点,使用export default function
语法。 - Nikos Paraskevopoulosconst ClassroomsOverview = ({classrooms}) => { //doStuff() }
- luxconst =>
与function
)。它也不可能是this
语义,因为这是一个无状态组件。难道只是为了避免使用关键字,以便不分散组件名称的注意力吗?或者只是为了在任何地方都使用新的闪亮工具? - David Mason