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

التطبيق يطلب منى clean up ل useEffect كيف افعلها ؟؟

أحمد عبد الله2

السؤال

التطبيق يطلب منى clean up ل useEffect كيف افعلها ؟؟

هذا هو الكود 

 const [modalVisiable, setModalVisiable] = useState(false);
  const [selectedType, setSelectedType] = useState("نوع المخالفة");
  const [location, setLocation] = useState(initLocation);
  const [errorMsg, setErrorMsg] = useState(null);

  //
  const [startCamera, setStartCamera] = useState(false);
  const [capturedImage, setCapturedImage] = useState(null);
  const [waitMessage, setWaitMessage] = useState("");

  const __takePicture = async () => {
    if (!camera) return;
    setWaitMessage("انتظر قليلا حتى يتم تحويلك");
    const photo = await camera.takePictureAsync();
    console.log(photo);
    setCapturedImage(photo);
    console.log(capturedImage);
    setStartCamera(false);
    setWaitMessage("");
  };
  let camera = Camera;

  useEffect(() => {
    (async () => {
      let { status } = await Location.requestForegroundPermissionsAsync();
      if (status !== "granted") {
        setErrorMsg("يجب عليك ان توافق على التصريح");
        return;
      }
      let location = await Location.getCurrentPositionAsync({});
      setLocation(location);
    })();
  }, []);

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

دالة التنظيف clean هي دالة تقوم بوضعها في إرجاع دالة useEffect لكي تقوم بإزالة بيانات سابقة أو أحداث سابقة كما في هذا المثال

useEffect(() => {
    API.subscribe()
    return function cleanup() {
        API.unsubscribe()
    }
},[])

وهذا مثال آخر يوضح ذلك

const Loading = () => {
  const [loadingStatus, setLoadingStatus] = useState(".");

  useEffect(() => {// إنشاء فترة وحفظ رقمها  
    const intervalId = setInterval(() => {
      setLoadingStatus(ls => ls + ".");
    }, 1000);

    return () => clearInterval(intervalId);// إزالة الفترة التي أنشئناها من خلال دالة التنظيف
  }, []);

  return <p>{`Loading ${loadingStatus}`}</p>;
};

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...