如何编译ES6类?

时间:2018-03-31 16:21:20

标签: javascript react-native es6-class

虽然我希望对本机动画文档做出反应,但我还是会阅读一些有趣的内容。代码:

class FadeInView extends React.Component {
  state = {
    fadeAnim: new Animated.Value(0),  // Initial value for opacity: 0
  }

  // Other parts of code piece ...
  // https://facebook.github.io/react-native/docs/animations.html
}
  

让我们分解这里发生的事情。在FadeInView构造函数中,一个名为fadeAnim的新Animated.Value被初始化为状态的一部分。

在上面的语句中,提到状态是在构造函数中初始化的。但是,此代码段中没有构造函数。根据c#和c ++等其他语言的知识,可以在没有构造函数的类中声明和初始化变量。

  1. 我实际上并不了解javascript中的底层进程如何在es6类中声明和初始化这些变量。
  2. 为什么他在没有任何构造函数时提到构造函数。
  3. 如何编译es6类? (这可能很长,整体情况可以满足我的需求)

2 个答案:

答案 0 :(得分:2)

do shell script "nc xxx.xxx.x.xxx 9990 \\" & linefeed & ¬ "VIDEO OUTPUT ROUTING: \\" & linefeed & ¬ "0 3 \\" & linefeed & ¬ "1 15 \\" & linefeed & ¬ "2 15" 是一个类属性,目前不是ES6 +标准功能。 因此,您需要使用Babel state才能transform class properties

目前,该插件转换将类属性移动到构造函数中。检查babel repl output

简化的Babel输出:

Stage 2 preset

有关class field declarations

的更多信息

答案 1 :(得分:1)

类属性(还有一个js proposal)实际上已移入构造函数中:

  class FadeInView extends React.Component {
   constructor() {
    this.state = {
      fadeAnim: new Animated.Value(0),  // Initial value for  
      opacity : 0
    };
   }
 }