首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"@Composable调用只能从@Composable函数的上下文中进行“

"@Composable调用只能从@Composable函数的上下文中进行“
EN

Stack Overflow用户
提问于 2021-11-01 22:53:32
回答 1查看 167关注 0票数 0
代码语言:javascript
复制
@Composable
fun CategorySection(context: Context) {
    Column(modifier = Modifier.padding(8.dp)) {
        Text(
            text = "Api Data",
            style = MaterialTheme.typography.h5,
            modifier = Modifier.padding(vertical = 7.dp, horizontal = 8.dp)
        )
        val coroutineScope = rememberCoroutineScope()

        coroutineScope.launch(Dispatchers.Main) {
            val response = ApiPhoto.apiService.getPhotos()

            if (response.isSuccessful && response.body() != null) {
                val photos = response.body()
                photos?.let {
                    CategoryItemSection(it)
                }
            } else {
                Toast.makeText(
                    context,
                    "Error Occurred: ${response.message()}",
                    Toast.LENGTH_LONG
                ).show()
            }
        }
    }
}

@Composable
fun CategoryItemSection(photos: List<Photo>) {
    LazyColumn(
        modifier = Modifier.fillMaxWidth()
    ){
        items(photos.size){
            CardView(photos[it])
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2021-11-02 05:32:17

您不能从协程内部调用CategoryItemSection。你在这里的编码实践是完全错误的。您不应该从可组合组件中对数据源进行API调用。使用视图模型和状态提升:

阅读状态提升和单向数据流:

https://developer.android.com/jetpack/compose/state

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69803611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档