中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 【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

互助| 清镇市| 四子王旗| 东光县| 双鸭山市| 革吉县| 南宁市| 庆元县| 庆城县| 淮南市| 色达县| 嘉义市| 剑河县| 天柱县| 青铜峡市| 枣庄市| 临武县| 正定县| 大同市| 芦溪县| 高唐县| 荔浦县| 咸宁市| 陆丰市| 宣恩县| 宁都县| 石景山区| 舟曲县| 蓬溪县| 高要市| 盐城市| 固原市| 兴宁市| 固安县| 隆昌县| 页游| 高青县| 泾川县| 探索| 望江县| 岑溪市|