我有一个使用 Jetpack compose 的项目。当我切换到更高版本后kotlinCompilerExtensionVersion
我遇到了一个问题:部分构图不再绘制。
我发现问题出在与此类似的代码上:
variable?.let {
ComposableFunction1(it)
} ?: ComposableFunction2()
您可以使用向导重现创建新 Compose 项目并替换Greeting
功能:
@Composable
fun Greeting(name: String?) {
name?.let {
Text(text = "Hello $it!")
} ?: Text(text = "Hello!")
}
如果我对 Compose 和kotlinCompilerExtension
和 Kotlin 1.5.31 版本,一切正常。如果我切换到 kotlinCompilerExtension1.1.0-rc02
和 Kotlin 1.6.0Text(text = "Hello!")
不运行。
当然我可以使用解决这个问题if-else
相反(复杂的)let + elvis operator
但我想了解新行为是否记录在某处。
顺便说一下,如果我添加这个功能:
private fun testFunction(name: String?) {
name?.let {
Log.d("testFunction", "Hello $it!")
} ?: Log.d("testFunction", "Name is null")
}
即使使用 Kotlin,一切都按预期进行1.6.0
这意味着我看到日志“Name is null”
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)