我有一个简单的组件,正在虚拟iOS设备和物理Android设备中进行测试。该组件向服务器请求JSON格式的用户。在两个设备中调用URL https://jsonplaceholder.typicode.com/users时,一切正常。
当我为用户调用服务器https://steppin-in.space/api/test时出现问题。在虚拟设备中没有延迟,但是在Android设备中大约有2分钟的延迟。
对于可能导致这种情况的原因我没有很多想法,但是最近我遇到了问题,因为我的服务器中没有设置 cors 。这使我认为问题与发送和接收的标头有关。
我还应该注意,这种适合于纯反应的成分效果很好。
import React, {Component} from 'react';
import { StyleSheet, Text, View, ActivityIndicator} from 'react-native';
export default class App extends Component {
constructor(props) {
super(props);
this.state = {
isLoading: true,
data: null
};
}
componentDidMount(){
// return fetch('https://jsonplaceholder.typicode.com/users')
return fetch('https://steppin-in.space/api/test')
.then( (response) => response.json())
// .then( (jsonData) => console.log(jsonData) )
.then( (responseJson) => {
this.setState({
isLoading: false,
data: responseJson[0].name
})
})
.catch((error) => {
console.log('my Error: ', error);
})
}
render() {
if (this.state.isLoading) {
return (
<View style={styles.container}>
<ActivityIndicator size="large" />
</View>
)
} else {
return (
<View style={styles.container}>
<Text>
{this.state.data}
</Text>
</View>
);
}
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
});