我遇到了一个奇怪的问题,我正在使用Nexmo验证号码,并且正在发送发布方法
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条件部分,但奇怪的是它有时确实起作用,并且在其他时候没有出现警告,可能是未处理的承诺被拒绝(id:1)。
我的JSON响应
{
"status": [
{
"status": "success",
"uid": "99"
}
]
}
答案 0 :(得分:0)
首先,检查this.props
和this.state
是否可在承诺内访问。
如果未在获取之前创建一个变量,其值应为this
示例let self = this;
然后
this.props.navigation.navigate
将成为
self.props.navigation.navigate.