問題描述
我正在為使用我的自定義視圖的 compose 函式創建一個抽象:
@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 函式的背景關系中發生”
可以做我想做的事嗎?
uj5u.com熱心網友回復:
可組合是一個函式。您不能對功能進行擴展。并且該錯誤明確指出您正在嘗試DisposableEffect在不可組合函式中使用可組合函式(這是一個不呈現任何 ui 的普通可組合函式)。
你想多了。有很多組合物不呈現任何 UI。@Composable注釋不以任何方式系結到 UI。所以做一個不渲染任何東西的可組合函式是完全沒有問題的
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/390131.html
