React无状态组件中的箭头函数语法

U r*_*u s 7 ecmascript-6 reactjs

我最近发现了无状态组件的乐趣.例如,这让我很开心(而且它有效):

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
}
Run Code Online (Sandbox Code Playgroud)

如果我可以使用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
}
Run Code Online (Sandbox Code Playgroud)

我已经关注了这个视频,但我无法使用箭头语法版本.

任何人都可以指出我做错了吗?

Ber*_*rgi 7

你错过了export宣言.将其添加到您的模块:

export {ClassroomsOverview as default}
Run Code Online (Sandbox Code Playgroud)

但是我建议export default在函数声明中使用语法.

  • `export default const X = ...;`*是*语法错误.它不受支持.你可以只用值导出`export default ...;`,但不能用`const`声明.另见[这个答案](http://stackoverflow.com/a/34107388/1048572) (2认同)