Android Jetpack Compose中数据类的更新策略

Android Jetpack Compose中数据类的更新策略,android,android-jetpack,android-jetpack-compose,Android,Android Jetpack,Android Jetpack Compose,我尝试使用一个数据类中的对象,该对象将更新一个可组合文件并按如下方式声明它: data class CounterState(var counter: Int = 0) ..... val counterState: CounterState by remember { mutableStateOf(CounterState(), structuralEqualityPolicy()) } structuralEqualityPolicy()是可组合的更新策略,定义如下: 一种策略,用于将可变

我尝试使用一个数据类中的对象,该对象将更新一个可组合文件并按如下方式声明它:

data class CounterState(var counter: Int = 0)
.....
val counterState: CounterState by remember { mutableStateOf(CounterState(), structuralEqualityPolicy()) }
structuralEqualityPolicy()
是可组合的更新策略,定义如下:

一种策略,用于将可变状态的值视为等效值(如果它们是 结构上相等

如果属性计数器更改为:
counterState.counter++
Composable应该更新,但这不起作用

我使用撰写版本
1.0.0-alpha06

你知道如何解决这个问题吗

import androidx.compose.foundation.Text
import androidx.compose.foundation.layout.Column
import androidx.compose.material.Button
import androidx.compose.runtime.*
import androidx.ui.tooling.preview.Preview

data class CounterState(var counter: Int = 0)

@Composable
fun dataClassRemember() {
    val counterState: CounterState by remember { mutableStateOf(CounterState(), structuralEqualityPolicy()) }
    Column() {
        Button(onClick = {
            counterState.counter++
        }) {
            Text(text = "Increment")
        }
        Text(text = "Counter value is ${counterState.counter}")
    }
}

@Preview("dataClassRemember")
@Composable
fun dataClassRememberPreview() {
    dataClassRemember()
}

我会试试这个:

data class CounterState(var counter: Int by remember { mutableStateOf(0)})
希望它能起作用, 安娜