Alexander Maryanovsky
11/04/2023, 8:33 AMModifier.testTag("42")
cause a recomposition of the function it’s passed to, but Modifier.testTag(functionThatReturns42())
does?@Composable
private fun MyText(
modifier: Modifier
) {
println("(Re)composing MyText")
Text("Hello", modifier = modifier)
}
private fun makeTestTag(): String {
return "42"
}
fun main() = singleWindowApplication {
var number by remember { mutableStateOf(1) }
Column {
Text("$number")
MyText(
Modifier.testTag(makeTestTag())
)
}
LaunchedEffect(Unit){
delay(2000)
number += 1
}
}
makeTestTag()
with "42"
it prints it only once.makeTestTag
is inline!ascii
11/04/2023, 8:49 AM===
? "42" is constant; function is evaluated every time number
changes, thus returns a new string every time.even ifhmm no ideais inlinemakeTestTag
Alexander Maryanovsky
11/04/2023, 8:51 AMshikasd
11/04/2023, 6:15 PMAlexander Maryanovsky
11/04/2023, 6:18 PM@Stable
. Yeah, that solves it.