React Native使用代理获取本地服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React Native使用代理获取本地服务器相关的知识,希望对你有一定的参考价值。

[在我的React Native应用中,我试图对本地后端服务器执行fetch。在我的package.json中放置了"proxy": "http://localhost:3000"

我的抓取看起来像

fetch('/')
  .then(response => response.json())
  .then(json => console.log(json))
  .catch(err => console.log)

捕获错误

[TypeError: Network request failed]

当我删除代理并在获取中手动输入地址时,它就起作用了,我的服务器收到了GET请求。

fetch('http://localhost:3000')
  .then(response => response.json())
  .then(json => console.log(json))
  .catch(err => console.log)
答案

这里有两点:

首先

与网络不同,react-native中的http客户端没有当前的host。因此,如果您使用fetch('/'),它基本上不知道要发送到哪个域或IP地址。

第二

package.json中的代理设置是create-react-app的功能,它包装了webpack dev server's proxy

react-native具有自己的脚手架react-native-cli,该脚手架使用Metro而不是Webpack作为捆绑器。 Metro是一种相对简单的JS捆绑器设计,尤其是对本机而言。它不支持设置本地代理服务器。

另一答案

您好,您可以使用网络IP地址来使用本地服务器,例如本地主机更改为IP地址,您可以调用服务器,例如http://192.xxx.x.xxx:3000

以上是关于React Native使用代理获取本地服务器的主要内容,如果未能解决你的问题,请参考以下文章

我可以使用 React Native 的异步存储从本地存储中获取值吗?

使用expo的react-native消息队列

react-native 如何从本地JSON文件中获取数据?

React native 获取国家和城市

React-native-track-player 无法播放由 rn-fetch-blob 获取的本地文件

如何使用 React-native 访问 Django 本地服务器数据?