search

Home  >  Q&A  >  body text

How to update a React component's dependencies in useEffect without creating an infinite loop

I have a React component where I need to wait for a stored value (member) to be updated and then delete a member based on a condition before setting the stored value. However, this obviously creates a loop.

useEffect(() => {
    if(members.length > 0) {
        setMembers(members.filter((item) => item.name != 'Bob'));
    }

}, [members]);

Is there any good way to solve this problem? Based on my application setup, I really need to do this in this component.

P粉609866533P粉609866533299 days ago1625

reply all(1)I'll reply

  • P粉585541766

    P粉5855417662024-04-06 09:48:40

    You can try using updater state const [update, setUpdate] = useState(false) and pass update as a dependent array. When the member list is updated, use setUpdate(!update).

    reply
    0
  • Cancelreply