91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 【REACT NATIVE 系列教程之三】函數綁定與FLEXBOX是用好REACT的基礎

【REACT NATIVE 系列教程之三】函數綁定與FLEXBOX是用好REACT的基礎

發布時間:2020-04-05 23:22:51 來源:網絡 閱讀:840 作者:HimiScxin 欄目:開發技術
本站文章均為 李華明Himi 原創,轉載務必在明顯處注明: 
轉載自【黑米GameDev街區】 原文鏈接: http://www.himigame.com/react-native/2222.html


Himi在寫React 時主要遇到兩個知識點覺得很有必要跟大家一起回顧下。

  1. 函數綁定

  2. FlexBox 布局

   一:函數綁定

首先來看一段代碼片段:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

constructor(props) {

      super(props);

      this.state = {

         myName:'I am MyName!',

      };

  }

componentWillMount() {

    this.state.myName='cwm';

  }

  

  testFun1(){

    this.state.myName='tf1';

    Alert.alert('Himi', ' testFun1 ');

    

  }

  testFun2(){

    Alert.alert('Himi', ' testFun2 ');

  }

在state中聲明了myName

constructor: 組件的構造函數

componentWillMount : 組件預加載前調用的生命周期函數

testFun1、 testFun2 :是兩個自定義的函數。

 

繼續看render中的一段:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<TouchableHighlight

          underlayColor='#4169e1'

          onPress={this.testFun1}  

          >

            <Image

            source={require('./res/himi.png')}

            style={{width: 70, height: 70}}

            />

        </TouchableHighlight>

 

        <TouchableHighlight

          underlayColor='#4169e1'

          onPress={this.testFun2}  

          >

            <Image

            source={require('./res/himi.png')}

            style={{width: 70, height: 70}}

            />

        </TouchableHighlight>

這里創建了兩個圖片組件且都添加了觸摸組件,分別綁定自定義的函數testFun1 與 testFun2

 

當我們點擊第一個圖片時會報錯,運行效果如下:(點擊查看動態圖)

【REACT NATIVE 系列教程之三】函數綁定與FLEXBOX是用好REACT的基礎    【REACT NATIVE 系列教程之三】函數綁定與FLEXBOX是用好REACT的基礎

錯誤是說this沒有undefined,原因是因為當想在自定義的函數中使用this,那么需要進行函數綁定。

函數綁定: 函數進行 bind(綁定) 可以確保在函數中的 this 作為組件實例的引用,也就是說你想在自定義的函數中使用this,那么請先進行將此函數bind(this)

那么細心的童鞋會發現!為什么在 componentWillMount 函數中也使用了this卻通過了?因為 componentWillMount 是組件的生命周期函數。

那么常用的函數綁定方式有如下幾種:

1.  在生命周期函數中綁定,如下:

1

this.testFun1 = this.testFun1.bind(this)

 

2. 使用的地方直接綁定,如下:

1

onPress={this.testFun1.bind(this)}

 

3. 直接在使用的地方直接lambda,更方便  如下:

JavaScript

1

2

3

4

onPress={()=>{

     this.state.myName='tf1';

     Alert.alert('Himi', ' testFun1 ');

}}

 

   一:FlexBox 布局

關于CSS 的FlexBox 本篇不重新贅述了,一來是因為網上一搜一大把的教程,二來不一定有別人寫的仔細 – -… 。但是,Himi這里推薦兩個鏈接,學習足以:

1. 詳細介紹與分析:  http://www.tuicool.com/articles/vQn6ZrU

2. 直觀的教程:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

公安县| 尼勒克县| 偃师市| 临沧市| 穆棱市| 浮梁县| 额尔古纳市| 奉新县| 南平市| 九江县| 乌苏市| 景德镇市| 曲沃县| 平南县| 南雄市| 福建省| 灵台县| 株洲市| 寻甸| 滕州市| 阳朔县| 昭通市| 贡山| 磴口县| 阳谷县| 长沙县| 津市市| 察隅县| 玛多县| 沐川县| 湖北省| 益阳市| 漳平市| 罗城| 巴塘县| 柳州市| 岳阳市| 江源县| 哈密市| 金门县| 喀什市|