學(xué)習(xí)ReactNative一個月的筆記

2016年7月ReactNative跳坑記錄


1.添加組件屬性嘶摊,有一個地方需要注意蛹批,就是class屬性需要寫成 className 舟陆,for 屬性需要寫成 htmlFor 矾屯,這是因為 class 和 for 是 JavaScript 的保留字。

2.在genymotion上進行模擬的時候呀袱,一定要關(guān)閉電腦的防火墻贸毕,并且要把手機的wifi連上 (好像5.0以上的版本不會自動連接wifi),將模擬器的ip和端口設(shè)置為可訪問本機的ip(10.0.3.2:8081)夜赵,如果是在手機上的話明棍,也是可以打開網(wǎng)頁嘗試是否可以訪問,可以訪問后再將ip添加進genymotion的設(shè)置里面寇僧。

3.React Native的打包器會首先尋找File.<platform>.js文件摊腋,然后再去尋找 File.js 。這就允許我們將Android平臺的代碼放置到 File.android.js , iOS 的放入到 File.ios.js , 以及Web平臺的代碼放入到 File.js, 而不需要改變導(dǎo)入的聲明 ./File嘁傀。

4.在ES6中兴蒸,變量的解構(gòu)賦值用途很多,交換變量的值可以用這個奇妙的方法[x, y] = [y, x]。

5.當(dāng)你Image加載一個網(wǎng)絡(luò)圖片時细办,如果你不給該Image設(shè)置widthheight橙凳,那你將什么都看不到。這還不算笑撞,當(dāng)你使用ListView時如果該組件同時存在一個兄弟元素岛啸,那么此時ListView必須設(shè)置height,否則你會發(fā)現(xiàn)它不再響應(yīng)用戶的滾動操作茴肥。坚踩。。這個地方所說的widthheight是指的在style屬性中設(shè)置的值炉爆,如果直接設(shè)置height屬性的話是不會起作用的堕虹。

6.使用fetch時,當(dāng)你試圖提交附件表單數(shù)據(jù)的時候芬首,請一定要使用FormData對象將數(shù)據(jù)包裹如果你只是普通的json提交赴捞,就按照官方例子來做:

fetch(API_LOGIN_URL, { 
  method: 'POST', 
  headers: { 
    'Accept': 'application/json', 
    'Content-Type': 'application/json', 
  }, 
  body: JSON.stringify({ 
     account: this.state.account, 
    password: this.state.password
  }) 
});

7.FB提供了Dimensions組件可以用來獲取屏幕的當(dāng)前尺寸:

var deviceHeight = Dimensions.get('window').height;
var deviceWidth = Dimensions.get('window').width;

8.當(dāng)你打算在某個控件上套用設(shè)置好的某個樣式,但需要單獨為其設(shè)置一個額外特殊值時郁稍,你可以這樣:<View style={[styles.demo, {backgroundColor: "blue"}]}></ View>

9.也就是如果Text元素在Text里邊赦政,可以考慮為inline元素, 如果單獨在View里邊耀怜,那就是Block恢着。

10.我把View設(shè)置了justifyContent: 'center',alignItems: 'center'的樣式,并在里面放上了一個ViewPagerAndroid财破,這個時候如果不給他設(shè)置固定的寬度或者使用padding撐開他的話是看不見的掰派,大概是因為被View的style設(shè)置壓成了類似inline的屬性。

11.只有View組件在設(shè)置borderRadius屬性過后左痢,才會將自身的border一齊轉(zhuǎn)變成圓角靡羡,其他元素比如Image和Touchable類的都不會有任何反應(yīng)系洛,邊角是方的。

12.如果突然出現(xiàn)了略步,不顯示圖片的情況描扯,可以給他加一個邊框,這樣可以確定是沒有找到資源還是布局錯誤趟薄,我非常意外的發(fā)現(xiàn)只需要設(shè)置borderWidth為0就可以讓圖片顯示出來绽诚。(改:比較大的圖片有時候都不會顯示出來,這就很尷尬了)

13.在設(shè)置react-native-swiper的點的樣式的時候杭煎,不能傳入函數(shù)返回值恩够,需要直接傳入一個Element對象,我不知道是哪里出了錯:

class Dot extends Component{ 
  render(){ 
    return( 
      <View style={
          {backgroundColor: 'rgba(0,0,0,.2)',
            width: 2, 
            height: 2, 
            borderRadius: 10, 
            marginLeft: 3, 
            marginRight: 3, 
            marginTop: 3, 
            marginBottom: 3       
      }}/>
     ); 
  }
}

如果我傳入Dot.render()系統(tǒng)會報錯岔帽,提示我是一個空元素玫鸟,但是直接傳入View就可以成功。

14.RN中元素默認的定位方式是 relative 犀勒,并且只有relative 和 absolute 兩種定位方式。如果為組件加上 position:absolute 妥曲,它將會以inline的方式渲染在頁面上贾费。并且脫離正常文檔流。也就是視覺上會被后面的組件覆蓋檐盟,但不能通過zIndex方式調(diào)整褂萧。嵌套的Text不可用。

15.在給控件寫style屬性的時候葵萎,盡量用一個View包起來导犹,因為有很多控件的style樣式無法應(yīng)用,浪費調(diào)試時間羡忘。

16.在調(diào)試代碼的時候谎痢,要時刻注意this的指向,比如在下面的例子中卷雕,console.log中的this就指向了Drawer节猿,變成了調(diào)用他的this了,renderNavigationView`有毒,他會調(diào)用傳入的函數(shù)方法漫雕,并且把里面的this指針強行指向自己滨嘱。

class main extends Component{ 
  navigationView(){ 
    console.log(this); 
  } 
  render(){ 
    return( <DrawerLayoutAndroid renderNavigationView={this.navigationView} >
              ............. 
            </DrawerLayoutAndroid> ); 
  }
}

17.如果將文字放在圖片下方,但是只設(shè)置了圖片的寬度浸间,可能會導(dǎo)致文字不會緊貼圖片下方的問題太雨,如下就會出現(xiàn)此種問題,這個時候設(shè)置上height就行了魁蒜。

<View style={{justifyContent:"center",alignItems:"center"}}> 
    <Image source={require('')} style={{width:120}} resizeMode="contain"/> 
    <Text>沒有找到你的緩存喲</Text>
</View>

18.hairlineWidth:CallExpression用來定義當(dāng)前平臺最細的寬度囊扳。該屬性用來設(shè)置邊框或者兩個組件之間的分割線吩翻。javascript{ borderBottomColor: '#bbb', borderBottomWidth: StyleSheet.hairlineWidth}會根據(jù)當(dāng)前平臺信息,自動轉(zhuǎn)換成一根很細的線宪拥。

19.推庫上這篇文章《React Native 觸摸事件處理詳解》 關(guān)于手勢處理的仿野,非常有用!K=抛鳌!5奚病G蛱巍!

現(xiàn)在正在做一個RN的小項目校镐,模仿Bilibili的最新app亿扁,適合新手拿來理解,大家可以看一下順便幫我點個star哦~

React-Native-Bilibili 嗶哩嗶哩( ̄▽ ̄)~■干杯□~( ̄▽ ̄)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸟廓,一起剝皮案震驚了整個濱河市从祝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌引谜,老刑警劉巖牍陌,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異员咽,居然都是意外死亡毒涧,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門贝室,熙熙樓的掌柜王于貴愁眉苦臉地迎上來契讲,“玉大人,你說我怎么就攤上這事滑频〖衿” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵误趴,是天一觀的道長霹琼。 經(jīng)常有香客問我,道長凉当,這世上最難降的妖魔是什么枣申? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮看杭,結(jié)果婚禮上忠藤,老公的妹妹穿的比我還像新娘。我一直安慰自己楼雹,他們只是感情好模孩,可當(dāng)我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布尖阔。 她就那樣靜靜地躺著,像睡著了一般榨咐。 火紅的嫁衣襯著肌膚如雪介却。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天块茁,我揣著相機與錄音齿坷,去河邊找鬼。 笑死数焊,一個胖子當(dāng)著我的面吹牛永淌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播佩耳,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼遂蛀,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了干厚?” 一聲冷哼從身側(cè)響起李滴,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蛮瞄,沒想到半個月后悬嗓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡裕坊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了燕酷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片籍凝。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖苗缩,靈堂內(nèi)的尸體忽然破棺而出饵蒂,到底是詐尸還是另有隱情,我是刑警寧澤酱讶,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布退盯,位于F島的核電站,受9級特大地震影響泻肯,放射性物質(zhì)發(fā)生泄漏渊迁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一灶挟、第九天 我趴在偏房一處隱蔽的房頂上張望琉朽。 院中可真熱鬧,春花似錦稚铣、人聲如沸箱叁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耕漱。三九已至算色,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間螟够,已是汗流浹背灾梦。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留齐鲤,地道東北人斥废。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像给郊,于是被迫代替她去往敵國和親牡肉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,144評論 25 707
  • 原教程內(nèi)容詳見精益 React 學(xué)習(xí)指南淆九,這只是我在學(xué)習(xí)過程中的一些閱讀筆記统锤,個人覺得該教程講解深入淺出,比目前大...
    leonaxiong閱讀 2,838評論 1 18
  • <一>編寫Hello World React Native看起來很像React炭庙,只不過其基礎(chǔ)組件是原生組件而非we...
    AFinalStone閱讀 1,027評論 0 2
  • 初創(chuàng)企業(yè)是有利于社會的饲窿,并且他們確實需要天使投資人來幫助其起步和打下堅實的基礎(chǔ)。創(chuàng)業(yè)本質(zhì)上就是一筆生意焕蹄,但是他不僅...
    WenryXu閱讀 419評論 0 0
  • 你見過凌晨五點鐘這座城市的模樣嗎逾雄? 今日得見不是因為我早起, 而是因為我徹夜未眠腻脏。 昨晚喝了一晚的茶鸦泳,亢奮了神經(jīng);...
    樂盡天真且陶陶閱讀 879評論 0 0