我将babel 6与react插件一起使用,并按照文档说明设置了transile过程。我已阅读以便做出反应,我需要使用es2015
并做出反应preset
。最初使用这两个预设都可以正常工作。
但是当我从babel的website(属性初始值设定项)中复制了一个示例代码时 测试新的语言功能我在编写下面的代码时遇到了错误,因此不再可能转换代码。
// 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.
经过一段时间的调试,我通过加载babel的stage-0
预设来解决这个问题。但这只是运气。
所以,我无法找到答案的问题是:
如何确定正确的预设集合的正确方法。
或者是一个意外的令牌......主要是警告缺少预设?
感谢您的帮助
答案 0 :(得分:1)
如果您查看预设的babel页面,它会列出所有包含的转换。在这种情况下,您使用的是类属性,该属性目前处于第1阶段,因此包含在stage 1 preset中。
在ES2015中,您可以使用构造函数来设置默认值。