0

我将 babel 6 与 react 插件一起使用,并按照文档说明设置转译过程。我已阅读以使 react 工作我需要使用es2015和 react preset。最初,使用这两个预设一切正常。

但是,当我从 babel 的网站(属性初始化程序)复制示例代码以测试新的语言功能时,我在下面的代码被转译时遇到了错误,因此无法再转译代码。

// The ES6+ way
class Video extends React.Component {
    static defaultProps^= { // this is line 42 and ^ the column where error occurs
        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,
    }
}

Warning: [...]components/sectorList.js: Unexpected token (42:24) Use --force to continue.

经过很长一段时间的调试后,我通过加载stage-0babel 的预设解决了这个问题。但这只是运气。

所以我找不到答案的问题是:

正确的方法是如何确定正确的预设集合。

或者是一个意外的标记......警告主要是缺少预设的通知?

谢谢你的帮助

4

1 回答 1

1

如果您查看预设的 babel 页面,它会列出所有包含的转换。在这种情况下,您正在使用当前处于阶段 1 的类属性,因此包含在阶段 1 的预设中。

在 ES2015 中,您将使用构造函数来设置默认值。

于 2015-12-07T22:40:19.963 回答