Как показать сообщение об успехе, если данные успешно извлечены в console.log? - PullRequest
0 голосов
/ 17 апреля 2019

Я использую библиотеку чередования в реагирующем языке, я успешно получаю данные в console.log, но я хочу перенаправить на другую страницу, если она прошла успешно или возникла какая-либо ошибка, а затем показать на странице. Я пытался перенаправить на другую страницу, но он перенаправляет, даже если есть ошибка или нет, я не знаю, как это сделать. Я пытался сделать это так ..

Вот мой код.

    payme() {
            const apiKey = '<api_key>';
            const client = new Stripe(apiKey);
            client.createToken({
                number: this.state.number,
                exp_month: this.state.expmonth,
                exp_year: this.state.expyear,
                cvc: this.state.cvc,
            }).then((x) => {
                    let successmsg = x;
                    NavigationService.navigate('LoginPage');
            }).catch((e) => {
                console.log(e);
            })
        }

    render() {
            return (
              <Text>{this.successmsg}</Text>
            )
    }

enter image description here

Может ли кто-нибудь помочь мне с тем, как я могу показать ошибку и как я могу перенаправить на другую страницу только в случае успеха.

1 Ответ

1 голос
/ 17 апреля 2019

на основе вашего кода вы получите ошибку в этом .successmsg

    state = {
     successmsg : null          
    }

    async payme() {
            try{
                   const apiKey = '<api_key>';
                   await result  = new Stripe(apiKey).createToken({
                   number: this.state.number,
                   exp_month: this.state.expmonth,
                   exp_year: this.state.expyear,
                   cvc: this.state.cvc,
                   })

                   if(!result.error){
                      //do your success logic
                     //set your successmsg based on reslut object option
                      this.setState({successmsg : "YOURCUSTOM MESSAGE FROM RESULT OBJECT"})
                      NavigationService.navigate('LoginPage');

                   } else {
                      // throw your error here
                        throw "something went wrong"
                    }

             }
             catch(e){
              throw new Error(e);
             }

        }

    render() {
            return (
              <Text>{this.successmsg}</Text>
            )
    }

...