如何在 Compose 预览中使用注入的变量

how to using a injected variable in compose preview

提问人:BRDroid 提问时间:8/16/2023 最后编辑:BRDroid 更新时间:8/16/2023 访问量:55

问:

我有一个片段,它有一个注入的变量 timeZoneId,现在我必须将其传递给可组合项。

@Inject
lateinit var timeZoneId: ZoneId

在 Composable 中,我有一个预览,请如何将其作为参数添加到预览中。

@Composable
fun EditDepTime(
    timeZoneId: ZoneId,
    onCancelEditDepTime: () -> Unit
) {

}

@Preview
@Composable
fun EditDepartureTimePreview() {
    OhmeM3Theme() {
        EditDepartureTime(
            ZoneId, //Need to pass timezoneId here
            {}
        )
    }
}

我需要传递什么才能使预览正常工作

谢谢 R

Android Kotlin android-jetpack-compose android-jetpack-compose-preview

评论

1赞 Tenfour04 8/16/2023
你怎么可能把一些东西传递给只存在于运行时的预览? 将在编译和运行应用时注入。它不能在预览中使用。timeZoneId
0赞 BRDroid 8/16/2023
您好@Tenfour感谢您的回复,是的,这是正确的,所以需要传递给预览版的内容只是为了让它工作

答:

1赞 Tenfour04 8/16/2023 #1

需要向预览提供一些示例值,因为它无权访问运行时值。在这里,您可以放置任何您喜欢的 ZoneId,例如:

@Preview
@Composable
fun EditDepartureTimePreview() {
    OhmeM3Theme() {
        EditDepartureTime(
            ZoneId.systemDefault(),
            {}
        )
    }
}