gpt4 book ai didi

android - 如何在不使用@Composable 注释的情况下为撰写功能创建扩展?

转载 作者:行者123 更新时间:2023-12-02 16:01:56 28 4
gpt4 key购买 nike

问题描述

我正在为使用自定义 View 的组合函数创建抽象:

@Composable
fun DisposeBanner(bannerView: BannerView) {
DisposableEffect(key1 = true) {
onDispose {
bannerView.destroyAd()
}
}
}

但是,由于这个函数实际上并不渲染任何组件,我不希望它坚持使用 @Composable 标记,而是表明它只能通过扩展用于组合函数。

我失败的尝试

尝试做的时候:

fun Composable.disposeBanner(bannerView: BannerView) {
DisposableEffect(key1 = true) {
onDispose {
bannerView.destroyAd()
}
}
}

我收到一条错误消息:“@Composable 调用只能在@Composable 函数的上下文中发生”

有没有可能做我想做的事?

最佳答案

可组合是一个函数。您不能对功能进行扩展。并且该错误清楚地表明您正在尝试在不可组合函数中使用可组合 DisposableEffect 函数(这是一个不呈现任何 ui 的普通可组合函数)。

你想多了。有很多不呈现任何 UI 的可组合项。 @Composable 注释不以任何方式绑定(bind)到 UI。所以做一个不渲染任何东西的可组合函数是完全和完全没问题的

关于android - 如何在不使用@Composable 注释的情况下为撰写功能创建扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70450722/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com