import React, {useEffect, useState} from 'react';
export default function App() {
const [Data, setData] = useState(null);
useEffect(() => {
const fetchData = async() => {
const response = await fetch('https://jsonplaceholder.typicode.com/todos/1');
const newData = await response.json();
setData(newData);
}
fetchData();
},[]);
}
"Can’t perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in a useEffect cleanup function."
import React, {useEffect, useState} from 'react';
export default function App() {
const [Data, setData] = useState(null);
useEffect(() => {
let isCleanUp = true;
const fetchData = async() => {
const response = await fetch('https://jsonplaceholder.typicode.com/todos/1');
const newData = await response.json();
if(isCleanUp) setData(newData);
}
fetchData();
return () => isCleanUp = false;
},[]);
}
```js
import React, {useEffect, useState} from 'react';
export default function App() {
const [Data, setData] = useState(null);
useEffect(() => {
let abortController = new AbortController();
(async () => {
try {
const response = await fetch(
"https://jsonplaceholder.typicode.com/todos/1",
{
signal: abortController.signal,
}
);
const newData = await response.json();
setData(newData);
} catch (err) {
if (err.name === "AbortError") console.log(err);
}
})();
return () => abortController.abort();
}, []);
}