2015-04-04 72 views
0

請原諒noobie問題,但是當我通過反應原生文檔時,與常規javascript有語法差異。我正試圖弄清楚描述語法的文檔在哪裏。反應本機語法

例如本聲明

var { 
    ActivityIndicatorIOS, 
    StyleSheet, 
    View, 
} = React 

而且使用了=>運營商

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

回答

4
上述

接受答案是正確的,但這裏是一些例子:

第一:一個ES6解構的例子:

var { 
    ActivityIndicatorIOS, 
    StyleSheet, 
    View, 
} = React 

完全類似於:

var ActivityIndicatorIOS = React.ActivityIndicatorIOS; 
var StyleSheet = React.StyleSheet; 
var View = React.View; 

這是一個很好的速記方法。當然,解構比這個更強大,Mozilla文檔給出了更多的例子。

第二:一個ES6箭頭函數的例子(或脂肪箭頭功能)

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

優點是較少的代碼編寫,但關鍵的區別是,在箭頭功能「這個」是相同的'this'作爲它寫入的上下文。換句話說,你不必再使用bind()。

壞日子:

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

非常有趣的這個答案提的這個結合。我花了一段時間才發現這一點。 – xabitrigo 2016-04-26 10:00:15