Я только начал реагировать на нативную версию и могу запустить ее, используя Expo XDE. Внешний интерфейс работает правильно, но возникает проблема, когда клиент (эмулятор) отправляет серверу запрос «GET» (nodejs-express).
Появляется ошибка сети, что мне делать, чтобы подключить эмулятор к серверу экспресс? Я использовал IP-адрес localhost, это правильный путь?
Ошибка была о соединении между моим мобильным телефоном и моим компьютером. Я использовал localhost ip, но когда я заменил его на локальный ip компьютера, он заработал. Также, если вы используете Android Studio, вы можете использовать 10.0.0.2 или 10.0.0.3 для genymotion.
клиент
import React from "react";
import { StyleSheet, Text, View, Button } from "react-native";
import axios from "axios";
export default class App extends React.Component {
fetchData() {
alert("clicked");
axios
.get("http://localhost:3000")
.then(function(res) {
console.log("success");
})
.catch(function(err) {
console.log(err);
});
}
render() {
return (
<View style={styles.container}>
<Text>Open up App.js to start working on your app!</Text>
<Button
onPress={this.fetchData}
title="Learn More"
color="#841584"
Label="Learn more"
/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#fff",
alignItems: "center",
justifyContent: "center"
}
});
Сервер
const express=require('express');
const bodyParser=require('body-parser')
var Port=process.env.PORT||3000;
const app=express();
app.use(bodyParser.json);
app.use(bodyParser.urlencoded({extended:false}));
app.listen(Port,()=>console.log(`server started at 3000`));
app.get('/',(req,res)=>{
//res.send({data:"data"})
console.log(console.log("request is recieved"))
})