成功登录后更改页面

问题描述 投票:0回答:1

因此,如果条件成功,我尝试导航登录页面以重定向到另一个页面,但是问题虽然正在解决,但是当我输入错误的密码时页面仍然重定向,这是我的功能,

 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);
javascript react-native
1个回答
0
投票
我认为是更改响应处理程序。也许像这样

.then(function(response) { return response.json(); }).then((resJson) => { if(resJson.status == 'success'){ //check your response is correct navigate('SecondPage') } })

© www.soinside.com 2019 - 2024. All rights reserved.