I am learning React, especially learning useEffect.
What I can't figure out is why useEffect skips the last element of the array.
Can someone kindly explain why and how to fix it?
let users = ['Oliver', 'Thomas', 'George', 'William'] export default function App() { const [index, setIndex] = useState(0); console.log('RENDER'); useEffect(() => { if (index === users.length - 1) { return } setTimeout(() => setIndex(index => index 1), 2000) console.log('Hello ' users[index]); console.log('Side Effect RUNS!'); }, [users[index]]) }
Your
useEffect
will not run becauseusers[index]
has the same valueChange it to
index