2017-10-06 31 views
0

Fetch ne fonctionne pas dans le simulateur IOS avec React Native 0.44. J'essaye de créer un formulaire de connexion en réagissant nativement en utilisant fetch.fetch ne fonctionne pas dans le simulateur IOS avec React Native 0.44

Ceci est mon code,

login.ios.js 

import React, { Component } from 'react'; 
import { StyleSheet,TextInput,ActivityIndicatorIOS,TouchableHighlight, Text, View } from 'react-native'; 

class Login extends Component { 
    constructor(){ 
    super(); 
    this.state = { 
     reg_mob_no: "", 
     password: "", 
     error: "", 
     showProgress: false, 
    } 
    } 


    async onLoginPressed() { 
    this.setState({showProgress: true}) 
    try { 
     let response = await fetch('http://example.in/api/premiumuser/login', { 
           method: 'POST', 
           headers: { 
           'Accept': 'application/json', 
           'Content-Type': 'application/json', 
           }, 
           body: JSON.stringify({ 
            reg_mob_no: this.state.reg_mob_no, 
            password: this.state.password, 
           }) 
          }); 
     let res = await response.text(); 
     console.log("res is:" + res); 
    } catch(error) { 
    } 
    } 
    render() { 

    return (
     <View style={styles.container}> 
     <Text style={styles.heading}> 
       Login Form! 
      </Text> 
     <TextInput 
      onChangeText={ (text)=> this.setState({reg_mob_no: text}) } 
      style={styles.input} placeholder="Registered Mobile No"> 
     </TextInput> 
     <TextInput 
      onChangeText={ (text)=> this.setState({password: text}) } 
      style={styles.input} 
      placeholder="Password" 
      secureTextEntry={true}> 
     </TextInput> 
     <TouchableHighlight onPress={this.onLoginPressed.bind(this)} style={styles.button}> 
      <Text style={styles.buttonText}> 
      Login 
      </Text> 
     </TouchableHighlight> 

     <Text style={styles.error}> 
      {this.state.error} 
     </Text> 


     </View> 
    ); 
    } 
} 

const styles = StyleSheet.create({ 
    container: { 
    flex: 1, 
    justifyContent: 'flex-start', 
    alignItems: 'center', 
    backgroundColor: '#F5FCFF', 
    padding: 10, 
    paddingTop: 80 
    }, 
    input: { 
    height: 50, 
    marginTop: 10, 
    padding: 4, 
    fontSize: 18, 
    borderWidth: 1, 
    borderColor: '#48bbec' 
    }, 
    button: { 
    height: 50, 
    backgroundColor: '#48BBEC', 
    alignSelf: 'stretch', 
    marginTop: 10, 
    justifyContent: 'center' 
    }, 
    buttonText: { 
    fontSize: 22, 
    color: '#FFF', 
    alignSelf: 'center' 
    }, 
    heading: { 
    fontSize: 30, 
    }, 
    error: { 
    color: 'red', 
    paddingTop: 10 
    }, 
    success: { 
    color: 'green', 
    paddingTop: 10 
    }, 
    loader: { 
    marginTop: 20 
    } 
}); 


module.exports = Login; 

Je ne reçois pas de réponse du serveur lorsque vous cliquez dessus sur registerbutton.

Cette même source dans le travail avec expo mais ne fonctionne pas dans le simulateur ios. Outil de développement ne montrant rien.

Comment résoudre ce problème .. S'il vous plaît aider !!!

React version native: 0,44 Plate-forme: IOS développement du système d'exploitation: Mac OS 10.12 outils de construction: Xcode 9

+0

Possible duplication de [IOS React natif fetch() POST: Échec de la demande réseau] (https://stackoverflow.com/questions/46545832/ios-react-native-fetch-post-network-request-failed) – Raymond

Répondre

0

Essayez d'inclure la valeur paire de clés credentials: 'include' en chercher des options. La RN 0.44 a été introduite avec l'indicateur -Credentials XHR, comme vous pouvez le voir here.