首页 > 解决方案 > 我无法使用 Fetch 的方法从 react-native 访问 JSON.server 中的数据

问题描述

我使用以下代码创建了一个简单的 JSON.server 项目: npm install JSON-server -g

我使用以下代码运行此服务器: JSON-server --watch db.json -p 3001 -d 2000

当我在浏览器中运行此服务器时,它可以工作,但是当我以本机反应从该服务器获取数据时,这不起作用。

我的 react-native 用于从 JSON.server 获取数据的代码:

return fetch(baseUrl + "data")
  .then(
    response => {
      if (response.ok) {
        return response;
      } else {
        //error
      }
    },
    error => {
      var errmess = new Error(error.message);
      throw errmess;
    }
  )
  .then(response => response.json())
  .then(dishes => dispatch(fetchData(data)))
  .catch(error => dispatch(dataFailed(error.message)));

fetchData方法:

export const fetchData = data => ({
  data: data
});

更新1:

这是baseUrl:

export const baseUrl = "http://192.168.1.8:3001/";

请帮我解决问题。

我试过这个问题,但我的问题没有解决。

标签: react-nativereact-redux

解决方案


我的问题是因为我的 ip4 地址。
正如我之前所说,我已经尝试过这个问题,但我的问题没有解决。
我确实找到了一种从服务器获取数据的方法。

对于那些面临类似问题的人。

脚步:

1) 转到https://ngrok.com/并创建帐户

2) 登录

3)进入设置和安装,按照1、2步骤。

4) 将 ngrok.exe 放在您选择的文件夹中。确保该文件夹位于您的 PATH 环境变量中。

5) 按照设置和安装的步骤 3。

6) 打开命令提示符并输入 ngrok http(例如:3005)并输入。你会得到一个 ngrok url(例如:转发http://977ab183.ngrok.io

7) 将此网址(例如:http: //977ab183.ngrok.io/ )设为您的应用程序 baseUrl

8) 打开另一个指向您的应用程序目录的命令提示符并运行您的 json 服务器: json-server --watch db.json -p 3005 -d 2000


推荐阅读