اذهب إلى المحتوى

السؤال

نشر

يظهر هذا الخطأ عندما أحاول تسجيل الدخول:

beckend.PNG.bdf63efe09d39d325758575b078ee7c8.png.2b0ea691868e54bf9f78fff9c37c6ee4.png

client.PNG.e314123e6de1216a433b01eeb1e01d32.png.5c6134bc978602bda832973a4f8ed801.png

وذلك هو ملف SignIn.js :

import React ,{useState,useEffect} from  'react';
import {ScrollView,KeyboardAvoidingView,View} from 'react-native';
import AsyncStorage from '@react-native-async-storage/async-storage';
import axios from '../config/axios';
import {SIGNIN_URL} from '../config/urls';
import Inbut from './compononts/Inbut';
import ScreenTitle from './compononts/ScreenTitle';
import styles from './styles/authStyles';
import { AntDesign } from '@expo/vector-icons';
import Button from './compononts/Button';
import container from './compononts/container';
import Alert from './compononts/Alert';
import Loader from './compononts/Loader';

function SignInScreen (props){
  const [email,setEmail]=useState('');
  const [password , setPassword]=useState('');
const [isLoading ,setLoading]=useState(false);
const [alert , setAlert]=useState({message:null,type:''});

useEffect(()=>{
    const timer=setTimeout(()=>{
     setAlert({messages:null});

    },3000);
    return ()=>clearTimeout(timer);
},[alert.message]);

const changeEmailHandeler=(value)=>{
    setEmail(value);
}
const changePasswordHandeler=(value)=>{
    setPassword(value);
}

const validate =()=>{
    
     let validationError=[];
     let passed=true;
    
     if(!email){
        validationError.push("الرجاء إدخال البريد الإلكتروني ");
        passed=false;
    }
    if(!password){
        validationError.push("الرجاء إدخال كلمة السر  ");
        passed=false;
    }
    
    
    if(validationError.length>0){
        setAlert({message:validationError,type:'danger'});
    }
return passed ;
}

const _SignIn=()=>{
(async()=>{
    if (!validate())return;
    setLoading(true);
    try{
const response= await axios.post(SIGNIN_URL,{email,password});
console.log({email,password});
  setLoading(false);
  setEmail('');
  setPassword('');
  AsyncStorage.setItem('accessToken',response.data.accessToken);
  console.log(data);
    }catch(e){
setLoading(false);
setAlert({messages:e.response.data.message,type:'danger'});
    }
})();



}



return (
  <ScrollView  contentContainerStyle={{paddingVertical:40}}>
    <Loader title="جاري تسجيل الدخول  " loading={isLoading} ></Loader>
    <Alert messages={alert.message} type={alert.type}></Alert>
    
     <View  style={styles.container} >
     <View style={styles.log}>
     <ScreenTitle title="سجل دخولك " ></ScreenTitle>
            <AntDesign style={styles.Ant} name="login" size={60} color="blue"  />
     </View>

<View>
    <KeyboardAvoidingView>
            <Inbut
            placeholder="البريد الالكتروني " 
            value={email} 
            onChangeText={changeEmailHandeler}

            />
            <Inbut
            placeholder="كلمة المرور   "
            value={password} 
            secureTextEntry
            onChangeText={changePasswordHandeler}
            />
            <Button
             text="تسجيل الدخول "
             onPress={_SignIn}
            ></Button>
            <Button 
            text="أنشئ حسابك  "
            onPress={()=>props.navigation.navigate('SignUp')}
            ></Button>
          
    </KeyboardAvoidingView>


</View>

</View>




    </ScrollView>

)


}
export default SignInScreen;

 

Recommended Posts

  • 0
نشر

السلام عليكم ,
هذا الخطأ لا يحدث بسبب مشكلة في react-native بل أنة خطا يحدث من الback-end 
فاذا كنت تستخدم express على سبيل المثال فيجب مراعاة ارسال response واحد فقط داخل الcontroller .
إذا حاولت إرسال أكثر من response سوف تواجة ذلك الخطأ .
أحيانا يكون هناك middlewares أو nested-functions موجودة داخل الcontroller تقوم بارسال الresponse 
فيحب مراجعة ذلك و التأكد من إرسال response واحد فقط .

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...