【问题标题】:JSON response react native Post method problemJSON响应反应原生Post方法问题
【发布时间】:2018-10-12 01:51:38
【问题描述】:

我遇到一个奇怪的问题,我正在使用 Nexmo 验证号码,并且我正在发送一个 post 方法

fetch('http://monasabat-app.com/basta_app/sign_up.php', {
  method: 'POST',
  headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/x-www-form-urlencoded'
  },
  body: formBody
}).then((response) => response.json())
        .then((responseJson) => { 
              const ss1 = responseJson.status[0]
              console.log(ss1)
              let success = 'success'
              if(ss1.status === success){
                alert(ss1.status)
                this.props.navigation.navigate('verNum',{
                  uid:ss1.uid,
                  phone:this.state.phone,
                  name:this.state.name,
                  emai:this.state.email
                })


              }else{
                alert(ss1.status)
              }

注册信息(formBody)已成功存储在数据库中,但它不会导航到 verNum 屏幕,也不会提醒 ss1.status 但如果响应不成功,它会在 else 部分提醒 ss1.status( num 已经注册)所以我猜问题出在 if 条件部分,但奇怪的是它有时会起作用,而在其他时候却没有警告可能未处理的 Promise Rejection (id: 1)。

我的 JSON 响应

{
    "status": [
        {
            "status": "success",
            "uid": "99"
        }
    ]
}

【问题讨论】:

    标签: json react-native post


    【解决方案1】:

    首先,检查 this.propsthis.state 在 Promise 中是否可以访问。

    如果不是在 fetch 之前创建一个变量,其值为 this

    例如let self = this;

    然后

    this.props.navigation.navigate
    

    会变成

    self.props.navigation.navigate.
    

    【讨论】:

    • 它第一次对我有用,但是当我尝试注册另一个用户时,它没有导航到 verNum 屏幕,并且显示可能未处理的承诺拒绝(id:0):SyntaxError:意外结束JSON 输入
    • 问题不在于导航原因,即使是在导航没有被调用之前的警报(ss1.status)
    • 我发现了问题,它在 Nexmo 验证中,它引发了异常,不过谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多