我正在React Native中使用axios
来执行发布请求,以执行登录用户功能。我成功获得响应,但是登录后我无法导航到主屏幕。这是我的代码。
axios.post('/wp-json/api/v1/user/do_login', {
username: username,
password: password
})
.then(function (response) {
console.log(JSON.stringify(response.data.type));
if(response.data.type == "success"){
alert("Login Successfully");
this.props.navigation.navigate("home");
}else if(response.data.type == "error"){
alert("Incorrect Detail");
}
})
.catch(function (error) {
console.log( JSON.stringify(response));
});
在上面的代码中,我获得了成功的响应,但没有得到下一个屏幕。这是我正在导航到下一个屏幕..
this.props.navigation.navigate("home");
答案 0 :(得分:4)
在回调函数中使用箭头功能进行导航。
axios.post('/wp-json/api/v1/user/do_login', {
username: username,
password: password
})
.then((response) => {
console.log(JSON.stringify(response.data.type));
if(response.data.type == "success"){
alert("Login Successfully");
this.props.navigation.navigate("home");
}else if(response.data.type == "error"){
alert("Incorrect Detail");
}
})
.catch(function (error) {
console.log( JSON.stringify(response));
});
您使用ES5语法,因此在异步调用中可能无法使用,因此您需要在回调中使用箭头功能(=>)。
答案 1 :(得分:4)
axios.post('/wp-json/api/v1/user/do_login', {
username: username,
password: password
})
.then((response) => {
console.log(JSON.stringify(response.data.type));
if(response.data.type == "success"){
this.props.navigation.navigate("home");
}else if(response.data.type == "error"){
alert("Incorrect Detail");
}
})
.catch(function (error) {
alert( JSON.stringify(response));
});