Sourabh Rawat
01/15/2022, 2:00 PMval App = FC<Props> {
val (responses, setResponses) = useState<List<String>>(emptyList())
useEffectOnce {
scope.launch {
stream.collect { payload ->
val response = payload.data.readText()
println("Prev: $responses, Got $response")
setResponses(responses + response)
}
}
}
div {
div {
+"Total number of response = ${responses.size}"
}
for (response in responses) {
div {
key = response
+response
}
}
}
}
Shows -
Total number of response = 1
423
The total number stays at 1 and the second lines updates 1 to 2 to 3 etcturansky
01/15/2022, 3:49 PMsetResponses { prev -> prev + response }
?
cc @Sergei GrishchenkoSourabh Rawat
01/15/2022, 3:51 PMturansky
01/15/2022, 3:51 PMSourabh Rawat
01/15/2022, 3:53 PMvar responses by useState<List<String>>(emptyList())
I tried
responses = responses + response
but it didn't work 😕turansky
01/15/2022, 3:55 PMturansky
01/15/2022, 3:56 PMturansky
01/15/2022, 3:59 PM// for complex cases
val (count, setCount) = useState(0)
Short - with Kotlin sugar:
// for simple cases
var count by useState(0)
Sourabh Rawat
01/15/2022, 4:05 PMuseEffect
, the value of responses
is always the emptyList()
, in other words, it doesn't see the updated values?turansky
01/15/2022, 4:07 PMSourabh Rawat
01/15/2022, 4:08 PM