我目前正在从事React Native / Expo项目,并且已经在Macbook上使用Simulator数月没有问题。该项目使用的是在端口3000上运行的Rails后端。最近几天,我一直在尝试使用Expo + iPhone在物理设备上实际运行该应用程序,但是我一直在拥有自己认为可以联网的功能问题。
[未处理的承诺被拒绝:TypeError:网络请求失败] -onerror中的node_modules / react-native / node_modules / whatwg-fetch / fetch.js:441:29 -dispatchEvent中的node_modules / event-target-shim / lib / event-target.js:172:43
SO上还有其他帖子,它们说要确保将localhost
更改为实际的机器IPv4地址,即IE:192.168.x.x
,但我一直没有用。在网络实用程序中列出的IPv4地址与我通过npm run ios
启动时Expo吐出的IP地址相同。
这里是我要拨打的电话:
signInUser: (username, password) => {
return fetch(`${HOST_NAME}/users/sign_in`, {
method: 'POST',
headers: defaultHeaders,
body: JSON.stringify({
username: username,
password: password,
}),
});
}
由于我猜想有人会问,所以标题如下:
var defaultHeaders = {
Accept: 'application/json',
'Content-Type': 'application/json',
}
HOST_NAME将替换为http://192.168.x.x:3000
,它再次是Expo在加载时提及的IP值,也是Network Utility中的IPv4地址。
通过手机浏览器访问http://192.168.x.x:19000
时,我可以检索我的应用程序信息以及端口19001上的信息。
还有其他方法可以确认我应该用来与本地服务器通信的确切IP吗?