该错误的原因是在非 @Composable 函数中调用了 @Composable 函数,应该将调用位置移动到 @Composable 函数中。 例如,下面的代码中,函数 foo() 不是 @Composable 函数,但是在其中调用了 @Composable 函数 ShowText(),导致编译时出现错误:
@Composable fun ShowText(text: String) { Text(text) }
fun foo() { val text = "Hello World" ShowText(text) // 编译时会出错 }
解决方法是将调用放入一个 @Composable 函数中,如下所示:
@Composable fun ShowText(text: String) { Text(text) }
@Composable fun foo() { val text = "Hello World" ShowText(text) // 现在不会出错 }