Reactjs 组件定义中的Babel语法错误

Reactjs 组件定义中的Babel语法错误,reactjs,ecmascript-6,babeljs,Reactjs,Ecmascript 6,Babeljs,我只是按照这些解释: 其中提到: // The ES6+ way class Video extends React.Component { static defaultProps = { autoPlay: false, maxLoops: 10, } static propTypes = { autoPlay: React.PropTypes.bool.isRequired, maxLoops: React.PropTypes.number.isR

我只是按照这些解释:

其中提到:

// The ES6+ way
class Video extends React.Component {
  static defaultProps = {
    autoPlay: false,
    maxLoops: 10,
  }
  static propTypes = {
    autoPlay: React.PropTypes.bool.isRequired,
    maxLoops: React.PropTypes.number.isRequired,
    posterFrameSrc: React.PropTypes.string.isRequired,
    videoSrc: React.PropTypes.string.isRequired,
  }
  state = {
    loopsRemaining: this.props.maxLoops,
  }
}
但如果我这样做:

class AddUserGeolocation extends React.Component {

  static propTypes = {
    alreadyAsked: React.PropTypes.bool.isRequired
  }

  componentDidMount {
    if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition((position) => {
        dispatcher(addUser('You', position.coords.latitude, position.coords.longitude))
      });
      dispatcher(askedForUserLocation())
    }
  };

  render() {
    let result = this.props.alreadyAsked ? 'Asked' : 'Not yet'
    return (
      <div>
        {result}
      </div>
    )
  }
}
这里怎么了

我对ES6、ES7、ES2015、Babel等感到困惑

使用:

"


对于类静态属性,您需要在Babel中安装并启用:

$ npm install --save-dev babel-preset-stage-0
并确保您的Babel配置使用它:

"presets": [ "es2015", "stage-0" ]

谢谢。我读到这是ES7而不是ES6。如果我更喜欢ES6,还有什么选择呢?@AugustinRiedinger,基本上是
AddUserGeolocation.propTypes={…}
@AugustinRiedinger:这不是ES7。ES7是今年即将发布的规范更新的通俗说法。此版本的新功能已经完成。类属性是一个建议,可能包含在未来版本的ECMAScript中,也可能不包含在其中。这就是为什么我现在不想使用它的原因:-)另外,
state={loopsRemaining:this.props.maxLoops,}
变成
constructor(…args){super(…args);this.state={loopsRemaining:this.props.maxLoops,};}
$ npm install --save-dev babel-preset-stage-0
"presets": [ "es2015", "stage-0" ]