Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 使用react native时返回并不连接_React Native_Backand - Fatal编程技术网

React native 使用react native时返回并不连接

React native 使用react native时返回并不连接,react-native,backand,React Native,Backand,我已经在backand中创建了一个简单的对象,它有三个字段——准入号、用户名和密码。在backand中尝试RESTAPI的POST方法时,数据插入成功。但是,当我尝试使用模拟器时,它没有连接到此对象。我尝试了很多方法——检查对象的url,将对象的安全设置为public,检查匿名令牌,但这些都不能解决我的问题 我做错什么了吗?请检查代码并帮助我 import React, { Component } from 'react'; import { StyleSheet, Text, View

我已经在backand中创建了一个简单的对象,它有三个字段——准入号、用户名和密码。在backand中尝试RESTAPI的POST方法时,数据插入成功。但是,当我尝试使用模拟器时,它没有连接到此对象。我尝试了很多方法——检查对象的url,将对象的安全设置为public,检查匿名令牌,但这些都不能解决我的问题

我做错什么了吗?请检查代码并帮助我

import React, { Component } from 'react';

import {
  StyleSheet,
 Text,
View,
Image,
TextInput,
ScrollView
} from 'react-native';

import Container from './Container';
import Button from './Button';
import Label from './Label';
import ImageContainer from './ImageContainer';


export default class RegisterView extends Component {
constructor(props) {
super(props)
this.state = {
    email: '',
    password: '',
    admissionNo:'',
  }
 }

 _handleAdd = () => {
 try{
 if((this.state.email)!=="" && (this.state.password)!=="" &&   
 (this.state.admissionNo)!=="" ){
  const data = {
    admission_no: this.state.admissionNo,
    username: this.state.email,
    password: this.state.password,
  }
  const json = JSON.stringify(data);
  let response =   
  fetch('https://api.backand.com:443/1/objects/parents', {
      method: 'POST',
      headers: {
           'Accept': 'application/json',
           'Content-Type': 'application/json',
           'AnonymousToken': 'abcdef',  //actual token has been given
           'Cache-Control': 'no-cache=\"set-cookie\"',
         },
         body: json
       });

       if (response.status === 200) {
         alert('Success! You may now login');
         this.props.navigator.pop();
       }
       else  {
       alert(this.state.admissionNo);
       }

     }
     else
       {
       alert ("Cannot be empty!")
       }
  }
  catch(err){
  alert(err);
  console.log(err);
  }

}
render() {
return (
    <ScrollView style={styles.scroll}>
    <ImageContainer>

    <Image
              style={{width:110,height: 110, justifyContent: 'center', 
alignItems: 'center'}}
              source={require('./Logo.png')}>
              </Image>
     </ImageContainer>

<Container>
<TextInput
    placeholder="Admission No."
    style={styles.textInput}
    onChangeText={(text) => this.setState({admissionNo:text})}
    autoCapitalize="none"
    autoCorrect={false}
    onSubmitEditing={(event) => {
       const{admissionNo}=this.state.admissionNo;
       const{onSubmitEditing}=this.props;
        if(!admissionNo) return
        onSubmitEditing(admissionNo)
        this.refs.SecondInput.focus();
      }}

    />

  <TextInput
    placeholder="Username"
    style={styles.textInputUsername}
    onChangeText={(text) => this.setState({email:text})}
    autoCapitalize="none"
    autoCorrect={false}
    onSubmitEditing={(event) => {
       const{email}=this.state.email;
       const{onSubmitEditing}=this.props;
        if(!email) return
        onSubmitEditing(email)
        this.refs.SecondInput.focus();
      }}


/>

<TextInput
    placeholder="Password"
    ref='SecondInput'
    secureTextEntry={true}
    onChangeText={(text) => this.setState({password:text})}
    style={styles.textInputPass}

 />
</Container>

         <Container>
             <Button
                 label="Create Account"
                 styles={{button: styles.primaryButton, label: 
   styles.buttonWhiteText}}
                 onPress={this._handleAdd}
                  />
         </Container>


    </ScrollView>

);

}
}
import React,{Component}来自'React';
进口{
样式表,
文本,
看法
形象,,
文本输入,
卷轴视图
}从“反应本机”;
从“./Container”导入容器;
从“./按钮”导入按钮;
从“./Label”导入标签;
从“./ImageContainer”导入ImageContainer;
导出默认类RegisterView扩展组件{
建造师(道具){
超级(道具)
此.state={
电子邮件:“”,
密码:“”,
许可证编号:'',
}
}
_handleAdd=()=>{
试一试{
如果((this.state.email)!=”&&(this.state.password)!=”&&
(this.state.admissionNo)!=“”){
常数数据={
录取编号:本州录取编号:,
用户名:this.state.email,
密码:this.state.password,
}
const json=json.stringify(数据);
让响应=
取('https://api.backand.com:443/1/objects/parents', {
方法:“POST”,
标题:{
“接受”:“应用程序/json”,
“内容类型”:“应用程序/json”,
'AnonymousToken':'abcdef',//已给出实际的令牌
“缓存控制”:“无缓存=\“设置cookie\”,
},
正文:json
});
如果(response.status==200){
警报(“成功!您现在可以登录”);
this.props.navigator.pop();
}
否则{
警报(此.状态.许可号);
}
}
其他的
{
警报(“不能为空!”)
}
}
捕捉(错误){
警惕(err);
控制台日志(err);
}
}
render(){
返回(
this.setState({admissionNo:text})
autoCapitalize=“无”
自动更正={false}
onSubmitEditing={(事件)=>{
const{admissionNo}=this.state.admissionNo;
const{onSubmitEditing}=this.props;
如果(!接纳否)返回
未提交(批准号)
this.refs.SecondInput.focus();
}}
/>
this.setState({email:text})
autoCapitalize=“无”
自动更正={false}
onSubmitEditing={(事件)=>{
const{email}=this.state.email;
const{onSubmitEditing}=this.props;
如果(!电子邮件)返回
onSubmitEditing(电子邮件)
this.refs.SecondInput.focus();
}}
/>
this.setState({password:text})}
style={style.textInputPass}
/>
);
}
}

准确地说出这里可能出现的问题有点困难。您是否能够确认web请求是从您的模拟器发出的?例如,如果同一个调用通过cURL工作,但在模拟器中失败,则可能是网络桥接问题。从emulator发送请求时,您是否收到任何错误?相同的调用通过cURL工作,但在emulator中不工作。我甚至在手机上使用了产品构建和安装,但都不起作用。当从模拟器发送请求时,我没有收到任何错误。乍一看,您的回击和API代码看起来是正确的。但是,您似乎正在使用我们的旧SDK-我们启动了一个新的SDK,支持react,可在上获得。您是否有任何方法可以将失败的请求转储到模拟器中的临时文件中,然后提供该数据?如果它通过cURL工作,但在emulator中不工作,则表明emulator中存在网络配置问题,但没有更多信息,我无法确定到底发生了什么。此外,您提到,当从emulator发送请求时,您没有收到任何错误-这是否意味着调用完成时没有错误,它以错误完成,但错误被抑制,或者执行线程没有到达发送请求的部分?