该值通过RememberSaveable在LazyPost中的几个视图中的一个视图中实时更改,但其他视图也发生了变化.

fun Post(
    postData: PostData, viewModel: PostViewModel = hiltViewModel()
) {
    val icCommentImagePainter = painterResource(R.drawable.ic_comment)
    val postGoodCounts = rememberSaveable { mutableLongStateOf(postData.goodCounts) }
    val goodStatus = rememberSaveable { mutableStateOf(postData.goodStatus ?: false) }

    LaunchedEffect(true) {
        viewModel.postGoodState.collect {
            if (it.isSuccess) {
                goodStatus.value = it.goodStatus ?: false
                postGoodCounts.longValue = it.goodCounts
            }
        }
    }
}
LazyColumn(
    horizontalAlignment = Alignment.CenterHorizontally,
    modifier = Modifier
        .padding(horizontal = 30.dp)
        .fillMaxWidth()
) {
    items(postData) {
        Column {
            Post(postData = it)
            HorizontalDivider(
                color = CustomColor.Gray,
                thickness = 1.dp,
                modifier = Modifier.padding(bottom = 20.dp)
            )
        }
    }
}

推荐答案

请看一下hiltViewModel篇文章:

返回一个现有的带有HiltViewModel注释的ViewModel,或者在{@ link NavController}后栈上创建一个新的ViewModel.

您的文章可合成以下代码:

viewModel: PostViewModel = hiltViewModel()

这将返回same ViewModel instance for every single Post可组合,因为所有这些都在您的NavGraph中的同一个目的地.如果从一个Post更新ViewModel中的字段,则所有其他Post都会有相同的更改.

Android相关问答推荐

Android Bundle getSerializable(String?):'可序列化?&# 39、被抛弃了在Java中被弃用

如何使用Gradle风味在两个Kotlin导入(Google vs Amazon Java billing library)之间进行 Select ?

关于BLE扫描工作原理的说明

Android Gradle/Groovy,如何将文件复制到APK

对支持哪些数据存储区方法感到困惑

不能在LazyGrid-Jetpack Compose中使用填充最大宽度或填充父项最大宽度

在Delphi中使用OpenCV for Android在使用JLIST时抛出错误

我们可以使用KSP读取类中变量的值吗?

减少Compose中可滚动选项卡之间的间距

是否可以按照干净的体系 struct 将活动实例传递给视图模型

状态更改后 colored颜色 未正确更改

如何在 Android Jetpack compose 中为列表初始填充设置动画

如何在 BasicTextField 中全选焦点

如何在最后一个可见项目之后计算惰性列中的空白空间

无法解析依赖项'com.github.smarteist:autoimageslider:1.4.0-appcompat'

为什么我在 Jetpack Compose 中被警告可选修饰符参数应该具有默认值修饰符?

Kotlin:如何在另一个变量的名称中插入一个变量的值

为什么我不能在屏幕外拿任何物体

即使我在单选按钮上明确设置了选中状态,RecyclerView 中的单选按钮也会随机取消选中

lambda 函数中的类型不匹配 - Kotlin