I have an app that checks the user id on startup and loads the list of todo items based on the user logged in. I have the useEffect change only when data
changes, but I have setData
in the body of useEffect() meaning data
changes and it re-runs infinitum.
However if I change [data]
to []
in the second parameter, then it renders once BUT I have to refresh the page everytime I add a todo item for it to render rather than it render automatically. How can I have it render automatically without looping infinitely?
const [data, setData] = useState([])
useEffect(() => {
UserService.getUserById(localStorage.getItem("userId")).then(res => {
if (res.data !== null) {
setData(res.data.todos)
}
})
}, [data])