目的:
回顧時知道自己今天做了什麼,以便更好地梳理後記住知識點
待解決的問題
內容顯示隱藏不影響佈局?
在login時就已經執行listScene的內容了,why?
rn的樣式到底怎麼看?雖然看起來就是選擇MDPI@1,但是爲什麼?
rn樣式狂虐,rn組件長什麼樣,有設麼用都不懂
rn內容顯示隱藏
{condition(jsx)}
react navigation - Configuring the header bar by:
static navigationOptions = {
header:null
};
rn 爲請求統一加上請求頭token
方案
1.引入redux :有點猛,好大一框架
2.自己寫全局單例存儲配合set/get,類似小型redux:使用閉包內存泄漏方式似乎是不可行的,因爲不同地方import都是重新執行一遍。所以必須掛載到global上了。
關於es6 import:
遇到import foo from 'xxx'語句的時候就開始執行被import文件的內容,
執行完畢後foo存儲的是一個內存地址(如果複雜對象)
調研抽屜滑側菜單:手寫與三方組件:
手寫沒必要,一般使用第三方
npm install react-native-side-menu --save
好文鏈接:https://segmentfault.com/a/1190000015870219
代碼的console.log出現在mac terminal of npm上!
(出現在起服務的服務器上,而不是模擬器的控制檯,說明了什麼?)
(node xxx.js:跑node腳本里的console.log會出現在同樣的地方)
rn中吸頂和吸底
定死高度+中間層flex:1
ios頂部條的解決方案:
1、設置20的空餘(margin/padding)或
2、引入statusBar(in react-native),<StatusBar hidden={true}/>
rn中引入並使用svg
(參考源https://blog.csdn.net/Crazy_SunShine/article/details/80906624)
=>跑起node腳本 ($ node xxx.js)
知識點:__dirname
總是指向被執行 js 文件的絕對路徑
本次跑了一個網上的腳本,把svg轉成js,其中語句const svgDir = path.resolve(__dirname, './svgs');
__dirname經打印後顯示爲/Users/dianyilan/Desktop/nodeScript
路徑join後識別到SVGs的文件夾(順便說明了fs.readFile對路徑名大小寫不敏感),成功生成了js
=>寫svg component組件,import SvgUri from 'react-native-svg-uri'; 因此需要安裝該包
=>查詢react-native-svg-uri 官方指南
npm install react-native-svg-uri --save
link react-native link react-native-svg # not react-native-svg-uri !!!
但是expo guide裏有說expo本身通過react-native-svg實現svg的api,
參考之前expo自帶react-navigation後不需要link或install否則報錯的經驗,
沒有做任何關於react-native-svg的操作,直接跑項目,顯示SVG圖標OK!
=>另外的問題:svg圖標只能顯示黑色,修改Svg組件參數無效。因爲svg文件的path節點沒有fill屬性。加上即可<path fill="#FFF">
=>svg圖片有些格式不同(time)或是某些部分缺失,在項目裏會報錯,目前是手動轉換格式,但應該有別的辦法,或者寫腳本來統一
react-native flex:1的含義
flex-grow: 1 主軸上放大比例。只有一個元素則撐滿
flex-shrink:1 主軸上縮小比例,即如果空間不足,該項目將縮小。
flex-shrink:1 在分配多餘空間之前,項目佔據的主軸空間。1就是100%