欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

React Native 真機斷點調(diào)試+跨域資源加載出錯問題的解決方法

 更新時間:2018年01月18日 09:18:44   作者:程序猿小卡  
下面小編就為大家分享一篇React Native 真機斷點調(diào)試+跨域資源加載出錯問題的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

寫在前面

閑來無事,折騰了一下React Native,相比之前,開發(fā)體驗好了不少。但在真機斷點調(diào)試那里遇到了跨域資源加載出錯的問題,一番探索總算解決,目測是RN新版本調(diào)試服務(wù)的bug。

遇到類似問題的同學(xué)應(yīng)該不少,這里做下記錄,有需要的可以參考下。

如何斷點調(diào)試

首先,在真機上加載運行RN應(yīng)用(過程略)。

然后,搖動手機,彈出開發(fā)菜單,選擇“Debug JS Remotely”。

chrome會自動打開調(diào)試界面,地址是 http://localhost:8081/debugger-ui/ 。打開控制臺,找到想要調(diào)試的文件,加斷點,搞定。

問題:跨域資源加載出錯

理想情況下,上述步驟后,就可以愉快地斷點調(diào)試了。但實際情況并沒有這么順利,按照 官方指引 修改了host后,問題依然存在。

在控制臺看到的錯誤信息如圖所示,跨域資源加載出錯。192.168.3.126 是本機內(nèi)網(wǎng)的ip,而出錯資源的域名是 192.168.3.126.xip.io。

在未對RN有深入了解的情況下,想到兩種思路,后文會分別講述細(xì)節(jié)。

讓加載出錯的資源,跟調(diào)試頁面變成同源的

讓調(diào)試服務(wù)支持資源跨域加載

解決方法一:替換主機名

將localhost替換成192.168.3.126.xip.io,也就是說,我們通過http://192.168.3.126.xip.io:8081/debugger-ui/ 來訪問調(diào)試界面。

調(diào)試界面正常訪問,資源加載正常,done。

192.168.3.126.xip.io 這個主機名看著有點奇怪,后文會進一步介紹背后的原理。

解決方法二:CORS

在github issue《CORS issue with JS Remote Debugging when using xip.io》里,有開發(fā)者反饋了同樣的錯誤。

他是這樣解決的:

找到node_modules/metro模塊,修改Server/index.js、index.js.flow文件,在_processDeltaRequest方法里加上下面代碼。

mres.setHeader("Access-Control-Allow-Origin", "*");

這個方法不推薦,不過如果急著調(diào)試的話也不妨試下。

192.168.3.126.xip.io是什么東東

看到這個主機名不少同學(xué)可能一臉懵逼,一個似乎不存在的主機名怎么可以訪問成功。

在控制臺下ping了一下返回的是 192.168.3.126 這個ip。

其實很簡單,xip.io是個特殊的域名,當(dāng)你查詢xxx.xip.io這個域名對應(yīng)的ip地址時,它會直接返回xxx。

舉例:筆者筆記本的內(nèi)網(wǎng)ip地址是 192.168.3.126,當(dāng)我 訪問 192.168.3.126.xip.io,DNS查詢返回的ip地址就是 192.168.3.126。

它的原理也很簡單,xip.io 的持有者在公網(wǎng)自建了DNS解析服務(wù),當(dāng)用戶發(fā)起 xxx.xip.io 的DNS查詢時,它會直接把 xxx 返回。

寫在后面

前面提到的跨域解決方案,其實都不盡如人意,如有更好的方案,請告訴筆者,謝謝。

參考鏈接

http://xip.io/

CORS issue with JS Remote Debugging when using xip.io

Debugging on a device with Chrome Developer Tools

以上這篇React Native 真機斷點調(diào)試+跨域資源加載出錯問題的解決方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • React Router6.x路由表封裝的兩種寫法

    React Router6.x路由表封裝的兩種寫法

    本文主要介紹了React Router6.x路由表封裝的兩種寫法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • React之echarts-for-react源碼解讀

    React之echarts-for-react源碼解讀

    這篇文章主要介紹了React之echarts-for-react源碼解讀,echarts-for-react的源碼非常精簡,本文將針對主要邏輯分析介紹,需要的朋友可以參考下
    2022-10-10
  • hooks中useEffect()使用案例詳解

    hooks中useEffect()使用案例詳解

    這篇文章主要介紹了hooks中useEffect()使用總結(jié),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • React報錯Too many re-renders解決

    React報錯Too many re-renders解決

    這篇文章主要為大家介紹了React報錯Too many re-renders解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • React使用emotion寫css代碼

    React使用emotion寫css代碼

    這篇文章主要介紹了React如何使用emotion寫css代碼,幫助大家更好的理解和學(xué)習(xí)使用React,感興趣的朋友可以了解下
    2021-04-04
  • 詳解在React-Native中持久化redux數(shù)據(jù)

    詳解在React-Native中持久化redux數(shù)據(jù)

    這篇文章主要介紹了在React-Native中持久化redux數(shù)據(jù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • React Antd中如何設(shè)置表單只輸入數(shù)字

    React Antd中如何設(shè)置表單只輸入數(shù)字

    這篇文章主要介紹了React Antd中如何設(shè)置表單只輸入數(shù)字問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 基于react項目打包css引用路徑錯誤解決方案

    基于react項目打包css引用路徑錯誤解決方案

    這篇文章主要介紹了基于react項目打包css引用路徑錯誤解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • 詳解React中合并單元格的正確寫法

    詳解React中合并單元格的正確寫法

    用表格進行頁面布局,頁面布局在各種瀏覽器的的兼容性, 本文主要介紹了詳解React中合并單元格的正確寫法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • react-router中<Link/>的屬性詳解

    react-router中<Link/>的屬性詳解

    這篇文章主要給大家介紹了關(guān)于react-router中<Link/>屬性的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-06-06

最新評論