因此,如果条件成功,我尝试导航登录页面以重定向到另一个页面,但是问题虽然正在解决,但是当我输入错误的密码时页面仍然重定向,这是我的功能,
getDataUsingPost(){
const {navigate} = this.props.navigation
//POST json
var dataToSend = {
username: this.state.username,
password: this.state.password,
imei: this.state.imei
};
//making data to send on server
var formBody = [];
for (var key in dataToSend) {
var encodedKey = encodeURIComponent(key);
var encodedValue = encodeURIComponent(dataToSend[key]);
formBody.push(encodedKey + "=" + encodedValue);
}
formBody = formBody.join("&");
//POST request
fetch('https://appshlw.oppomobile.id/api/login', {
method: "POST",//Request Type
body: formBody,//post body
headers: {//Header Defination
'Content-Type': 'application/x-www-form-urlencoded',
'key': 123456789
},
})
.then((response) => response.json())
//If response is in json then is success
.then((responseJson) => {
alert(JSON.stringify(responseJson));
navigate('SecondPage')
})
//If response is not in json then in error
.catch((error) => {
alert(JSON.stringify(error));
console.error(error);
});
}
}
这是jsx
<Button title='Login' onPress={this.getDataUsingPost.bind(this)}/>
所以这是我放入App.js的导航路线
//This is an example code for Navigator//
import { createStackNavigator } from 'react-navigation-stack'
import { createAppContainer } from 'react-navigation';
import FirstPage from './pages/FirstPage';
import SecondPage from './pages/SecondPage';
import Login from './pages/Login'
const App = createStackNavigator({
FirstPage: { screen: FirstPage },
SecondPage: { screen: SecondPage },
Login: {screen: Login}
},
{
initialRouteName: 'Login',
}
);
export default createAppContainer(App);
.then(function(response) {
return response.json();
}).then((resJson) => {
if(resJson.status == 'success'){ //check your response is correct
navigate('SecondPage')
}
})