इसलिए मैं प्रतिक्रिया देशी, और फायरबेस डीबी का उपयोग कर रहा हूं।

रजिस्टर फॉर्म बटन पर क्लिक करें मेरे पास फ़ंक्शन है जो उपयोगकर्ता बनाता है और शहर के फोन लाला जैसी कुछ जानकारी भी अपलोड करता है:

   handleSignUp = () => {
    Fire.shared.createUser(this.state.email, this.state.password, this.state.name, this.state.avatar, this.state.mobile, this.state.pickerSelection, this.state.errorMessage)

    if (this.state.name == "") this.setState({ errorMessage: "Vartotojo vardas privalomas" });
        else  if (this.state.email == "") this.setState({ errorMessage: "El. pašto adresas privalomas" });
            else if (this.state.password == "") this.setState({ errorMessage: "Slaptažodis privalomas" });
                else  if (this.state.password2 == "") this.setState({ errorMessage: "Pakartokite slaptažodį" });
                    else  if (this.state.city == "") this.setState({ errorMessage: "Telefono nr. privalomas" });    
                        else  if (this.state.mobile == "") this.setState({ errorMessage: "Miestas privalomas" });    
                             else if ( this.state.password != this.state.password2) this.setState({ errorMessage: "Slaptažodžiai nesutampa" });
                                else { 
                                    Fire.shared.createUser(this.state.email, this.state.password, this.state.name, this.state.avatar, this.state.mobile, this.state.pickerSelection);
                                };
   };

तो पहली बार फ़ंक्शन काम करता है। इनमें से कोई भी आई.एफ.एस. अगर मैं खाली इनपुट छोड़ता हूं तो मुझे त्रुटि संदेश अच्छी तरह से दिखाई देता है, लेकिन अगर मैं एक बार फिर बटन दबाता हूं तो यह वैसे भी उपयोगकर्ता बना रहा है, यहां तक ​​​​कि खाली मूल्यों के साथ भी ... जैसे शाब्दिक यह सब केवल एक बार काम करता है ...

यहां मेरा उपयोगकर्ता फ़ंक्शन बनाएं:


   handleSignUp = () => {
    Fire.shared.createUser(this.state.email, this.state.password, this.state.name, this.state.avatar, this.state.mobile, this.state.pickerSelection, this.state.errorMessage)

    if (this.state.name == "") this.setState({ errorMessage: "Vartotojo vardas privalomas" });
        else  if (this.state.email == "") this.setState({ errorMessage: "El. pašto adresas privalomas" });
            else if (this.state.password == "") this.setState({ errorMessage: "Slaptažodis privalomas" });
                else  if (this.state.password2 == "") this.setState({ errorMessage: "Pakartokite slaptažodį" });
                    else  if (this.state.city == "") this.setState({ errorMessage: "Telefono nr. privalomas" });    
                        else  if (this.state.mobile == "") this.setState({ errorMessage: "Miestas privalomas" });    
                             else if ( this.state.password != this.state.password2) this.setState({ errorMessage: "Slaptažodžiai nesutampa" });
                                else { 
                                    Fire.shared.createUser(this.state.email, this.state.password, this.state.name, this.state.avatar, this.state.mobile, this.state.pickerSelection);
                                };
   };

शायद यह ASYNC और AWAIT के कारण है? मैं केवल ट्यूटोरियल के कारण उपयोग कर रहा हूं, मुझे यकीन नहीं है कि वह क्या है।

-2
Rokas Devolskis 31 मार्च 2020, 23:56

1 उत्तर

सबसे बढ़िया उत्तर

आप Fire.shared.createUser() को दो बार कॉल करते हैं, पहली बार आपके चेक से पहले होता है (इसलिए यह वैसे भी उपयोगकर्ता बनाएगा), दूसरी बार जब आपके चेक पास हुए;

1
dangdangkhtn 31 मार्च 2020, 21:06