首页 > 解决方案 > 编译器在尝试获取对可组合函数的引用时抛出警告

问题描述

我有一个问题,返回对可组合函数的引用被解释为调用可组合函数,导致编译器抛出以下警告消息: 调用@Composable 函数的函数必须用@Composable 注释标记。我知道可组合函数只能在具有可组合上下文的函数内部调用,但是在这种情况下,我只是试图获取对该函数的引用而不是调用它。在下面的代码片段中, content.value 会引发警告消息。有关如何解决此问题的任何想法。

private typealias ComposableUnitLambda = @Composable() () -> Unit
private val EmptyRoute: ComposableUnitLambda = {}

@Model
class ContentHolder(var value: ComposableUnitLambda = EmptyRoute)

@Navigator.Name("compose")
class ComposableNavigator : Navigator<Destination>() { 
     val current: ComposableUnitLambda
           get() = content.value
 }

标签: androidandroid-jetpack-compose

解决方案


推荐阅读