The Complete React Native Hooks Course Info
fetchData(); return () => abortController.abort(); , [url]);
useEffect(() => let isMounted = true; // Prevents setting state if component unmounts The Complete React Native Hooks Course
import React, useState, useEffect from 'react'; import View, Text, ActivityIndicator from 'react-native'; export default function FetchData() const [data, setData] = useState(null); const [loading, setLoading] = useState(true); fetchData(); return () => abortController
Goal: Extract component logic into reusable functions. Example: useFetch – Reusable data fetching // useFetch.js export function useFetch(url) const [data, setData] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => const abortController = new AbortController(); useEffect – Handling Side Effects Goal: Replace lifecycle
State persists across re-renders; updating state triggers a re-render. 2. useEffect – Handling Side Effects Goal: Replace lifecycle methods ( componentDidMount , componentDidUpdate , componentWillUnmount ).
import useSelector, useDispatch from 'react-redux'; function TodoList() const todos = useSelector(state => state.todos.items); const dispatch = useDispatch();
return () => clearInterval(intervalRef.current); , []);
merci