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