React native 反应本机语法

React native 反应本机语法,react-native,React Native,恕我直言,但当我阅读react原生文档时,与常规javascript存在语法差异。我试图找出描述语法的文档在哪里 例如这句话 var { ActivityIndicatorIOS, StyleSheet, View, } = React 以及在中使用=>运算符 setToggleTimeout: function() { this.setTimeout( () => { this.setState({animating: !th

恕我直言,但当我阅读react原生文档时,与常规javascript存在语法差异。我试图找出描述语法的文档在哪里

例如这句话

var {
  ActivityIndicatorIOS,
  StyleSheet,
  View,
} = React
以及在中使用=>运算符

  setToggleTimeout: function() {
    this.setTimeout(
      () => {
        this.setState({animating:     !this.state.animating});
        this.setToggleTimeout();
      },
      1200
    );
  },

这些是ECMAScript 6的功能

第一个示例是一个分解赋值

第二个是箭头函数

setToggleTimeout: function() {
    this.setTimeout(
      () => {
        this.setState({animating:     !this.state.animating});
        this.setToggleTimeout();
      },
      1200
    );
  },

上述公认答案是正确的,但以下是一些示例:

第一:ES6解构的一个示例:

var {
  ActivityIndicatorIOS,
  StyleSheet,
  View,
} = React
完全类似于:

var ActivityIndicatorIOS = React.ActivityIndicatorIOS;
var StyleSheet = React.StyleSheet;
var View = React.View;
这是一种很好的速记方法。当然,解构比这更强大,Mozilla文档给出了更多的例子

第二:ES6 arrow函数或fat arrow函数的示例

setToggleTimeout: function() {
    this.setTimeout(
      () => {
        this.setState({animating:     !this.state.animating});
        this.setToggleTimeout();
      },
      1200
    );
  },
优点是编写的代码更少,但一个关键的区别是,在arrow函数中,“this”与编写它的上下文中的“this”相同。换句话说,您不必再使用bind了

糟糕的过去:

setToggleTimeout: function() {
        this.setTimeout(
          function() {
            this.setState({animating:     !this.state.animating});
            this.setToggleTimeout();
          }.bind(this),
          1200
        );
      },

这个答案很有趣,因为它提到了这个的绑定。我花了一段时间才发现这一点。