# React Native筆記1 - 安裝 [官方文檔 - Getting Started](https://facebook.github.io/react-native/docs/getting-started) 可以對照著官方文檔看這份筆記,理論上我只是翻譯了一下,如果有遇到bug再順便記個解決方式這樣xd 在開始以前先簡單簡介一下React Native是什麼: 他是一個Facebook開發的框架,可以用一套程式寫出能同時在ios和android平台跑的手機app(跨平台),使用的語言是Javascript。 ## 安裝Expo CLI - 安裝[Node.js](https://nodejs.org/en/download/) - 打開cmd - 進行Expo CLI的安裝:```npm install -g expo-cli``` - (不知為何會出現一堆警告,但有安裝完成) - [為何專題選擇Expo CLI而不是React Native CLi](https://stackoverflow.com/questions/54862388/what-is-the-difference-between-expo-cli-and-react-native-cli) - 初始化你的project(這裡取名為AwesomeProject):```expo init AwesomeProject``` - template:先選blank就好 - 啟動開發的server:```cd AwesomeProject``` ```npm start``` - 會開一個新的分頁,先放著xd ## 執行React Native應用程式 - 手機安裝Expo程式 - 去Google Play搜尋Expo - 確認手機和電腦連到同一個wifi - 手機打開Expo程式,點Scan QR Code來掃描剛才電腦Expo那個分頁的QR code - 另一種方法:註冊expo帳號,在app登入,也可以看到你的project們 - 做完```npm start```之後按```s```來註冊新帳號 --- ### :warning:如果有error 如果你跟我一樣遇到error (qr code掃描完出現 **could not load ..... Network response timed out**) ### 初步解法 第一步:建立**package.json檔案** - [資料來源](https://ithelp.ithome.com.tw/articles/10191682) - 執行 ```npm init``` - 要在你的project外面一層的資料夾執行ㄛ - 例如我的project放在 \charlotte\awesomeproject,那我就要在charlotte跑npm init - 接下來他會叫你輸入一些欄位,括號內是範例,照著打也可以 - package name: 這個project的名字 - version: 照打 - description: project介紹 - entry point: 打app.js (執行哪個檔案來開啟你的project) - test command: 直接enter - git repository: 我是沒有啦,直接enter - keywords: 直接enter - author: 作者名稱 - license: 直接enter - 確認好就輸入yes~ 你的package.json就建立好了 第二步:改成**Tunnel連線** - 電腦打開你剛才開著的expo分頁,把左下角的連線從LAN改成Tunnel - 用手機再掃一次QR Code! 這樣應該就成功了,只是因為切換成Tunnel所以下載javascript會變慢,如果有其他解決方式再補充 ### 如果還有問題 幾種解法提供參考: - 你的電腦和手機確定是連到**同一個wifi**? - 你484一打開expo cli就立刻切tunnel?(我是otz) - 要等到系統啟動完才可以切!!!應該會**顯示以下三行** - Starting Metro Bundler on port 19001 Watch mode is not supported in this environment Tunnel ready - 一定要等到這三行跑完!!!! ~~(痛哭~~ 不過有時候會跑蠻久的 - 欸……我也不知道了 可能重開電腦/重開expo/重載expo之類的吧 我幫不了你了qq --- ### :warning: 如果打的東西不會即時變更在手機上 如果你跟我一樣很雖的又遇到bug,發現打的東西不會出現在手機上…… (為了解決這個問題,我來回試了很多個方法,不知道什麼時候就成功了xd) #### 如果出現的是:"cannot connect to Metro server" 在手機打開project以後,閒置過一段時間好像會**自動斷線**,重連看看(把app重新啟動,或是重新```npm start```之類的)應該就好了 #### 如果是別的問題,再試試底下方法 首先,確定一下電腦分頁裡面的 **Production Mode是關著的** [延伸閱讀 - Development Mode & Production Mode](https://docs.expo.io/versions/latest/workflow/development-mode/) 方法1:修改環境變數 (我覺得不是這個緣故就是了xd) - 打開電腦的控制台 > 系統及安全性 > 系統 > 進階系統設定 > 環境變數 - 在 **系統變數** 裡面新增你的npm資料夾路徑 - 通常在C:\使用者\使用者名稱\AppData\Roaming\npm,你可能要翻翻看自己的在哪 方法2:開啟動態顯示變更設定 ([資料來源](https://docs.expo.io/versions/v34.0.0/workflow/up-and-running/)) 第一步:手機開啟USB Debugging (步驟可能根據不同品牌手機有所不同,我asus的xd) - 打開手機的設定 > 系統 - 開發人員選項 > 滑到底下,開啟USB偵錯 - 如果沒有"開發人員選項"這個選項:點選關於手機 > 軟體資訊 > 在版本號碼上面點很多次,開發人員選項就會跑出來 第二步:用USB線連接你ㄟ手機和電腦 - 打開expo,搖搖手機應該會出現開發人員選項 (我不知為何搖不出來XD) - 如果有看到 "**Enable Live Reload**" 就點一下,這樣才會動態顯示變更 - 如果看到 "Disable Live Reload" 那你設定應該沒錯,重啟程式看看有沒有幫助吧 如果還有問題就不是這個的原因xd --- ## 開始開發! QR code掃描成功以後,就可以用你喜歡的編輯器打開project裡面的App.js 開始編輯拉~ 想要在手機上跑跑看你寫的程式,就需要: - 開電腦cmd,移動到你的專案資料夾 (例如:```cd AwesomeProject```) - 開啟npm (然後他會一起開expo) ```npm start``` - (跟我一樣遇到上述bug的人) 分頁連線記得改tunnel - 打開手機expo程式,點開你的project就有嘍~~ [下一篇](https://hackmd.io/@charlo0602/HyYLG-aXL)筆記進教學嘍! ---
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.