Hildebrandt Tobias
09/11/2024, 9:32 AMfilters is just a `List<String>`:
val (filters, setFilters) = useState<List<String>>(listOf())
useEffect(filters) {
println("Now in useEffect")
val timeoutId = setTimeout({
println("Now in timeout function")
}, 2000)
clearTimeout(timeoutId)
}
"Now in useEffect" is printed, but "Now in timeout function" never shows even when I call setFilters and wait.turansky
09/11/2024, 10:56 AMuseEffect(filters) {
println("Now in useEffect")
delay(2000)
println("Code after timeout function")
}
delay is from coroutinesHildebrandt Tobias
09/11/2024, 11:00 AMfilters is changed again while the delay(2000) is still waiting,
is the "old" useEffect then canceled?turansky
09/11/2024, 11:02 AMuseEffectWithCleanup(filters) {
println("Now in useEffect")
val timeoutId = setTimeout({
println("Now in timeout function")
}, 2000)
onCleanup {
clearTimeout(timeoutId)
}
}Hildebrandt Tobias
09/11/2024, 11:07 AMturansky
09/11/2024, 11:09 AMsuspend analogs with auto cleanup 😉
Like in your caseturansky
09/11/2024, 11:10 AMHildebrandt Tobias
09/11/2024, 11:18 AMHildebrandt Tobias
09/11/2024, 11:31 AMturansky
09/11/2024, 11:36 AM