Оповещение в реакции родных - PullRequest
0 голосов
/ 07 сентября 2018

Я устанавливаю ошибку в состоянии true / false, и если error = true, то я хочу показать предупреждениеИтак, я сделал это.

constructor() {
    super()
    this.state = {
        email: "",
        password: "",
        error: false
    }
    this.handleSignUp = this.handleSignUp.bind(this)
}

и функция

handleSignUp() {
    fetch('http://myIp:9999/signUp', {
        method: 'POST',
        headers: {
            Accept: 'application/json',
            'Content-Type': 'application/json',
        },
        body: JSON.stringify(this.state),
    })
        .then((res) => {
            console.log("here")
            console.log(res)
            this.setState({error: false})
        }).catch((e) => {
        if (e) {
            console.log('e')
            console.log(e.status)
            this.setState({error: true})
        }
    })

}

и метод рендеринга как

 render() {

    var alert1 = alert(
        "User exist",
        "User with same Email exist. Try some to login or use other Email",
        [
            {text: "Ok", style: 'cancle', onPress: () => this.setState({error: false})}
        ]
    )


    return (
        <View style={styles.container}>
            {this.state.error ? alert1 : ""}
            <Header function1={() => this.props.navigation.openDrawer()}/>
            ....
        </View>
    )
}

, и результат не имеет значения, является ли ошибка истинной или ложнойкогда я открываю этот экран, появляется предупреждение, а затем ошибка

, поэтому я изменяю alert1.

var alert1 =    (<View> 
                                    alert(
                                            "User exist",
                                            "User with same Email exist. Try some to login or use other Email",
                                            [
                                                {text:"Ok",style:'cancle',onPress:()=> this.setState({error:false})}
                                            ]
                                        )
                                    </View>)

, и теперь ошибка устранена, но на экране появляется предупреждение о загрузке.

1 Ответ

0 голосов
/ 07 сентября 2018
handleSignUp() {
    fetch('http://myIp:9999/signUp', {
        ...
    })
      .then((res) => {
          //insted of this line => this.setState({error: false}) call Alert directly

            Alert.alert(
              'Alert Title',
              'My Alert Msg',
              [
                {text: 'Ask me later', onPress: () => console.log('Ask me later pressed')},
                {text: 'Cancel', onPress: () => console.log('Cancel Pressed'), style: 'cancel'},
                {text: 'OK', onPress: () => console.log('OK Pressed')},
              ],
              { cancelable: false }
            )
      })

}
...