Навигация не работает при вызове axios в React Native - PullRequest
0 голосов
/ 11 июня 2019

Я использую почтовый запрос, используя axios в React Native для выполнения функций входа пользователя в систему.Я получаю ответ успешно, но после входа я не могу перейти на домашний экран.вот мой код.

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");

Ответы [ 2 ]

5 голосов
/ 11 июня 2019

Используйте функцию стрелки в обратном вызове для навигации.

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, и это может не работать в асинхронном вызове, поэтому вам нужно использовать функцию стрелки (=>) в обратном вызове.

4 голосов
/ 01 июля 2019
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));
          });
...