mutableStateOf和mutableStateListOf的区别是什么?



当使用存储在那里的ViewModelList时,我通常遵循这种方法:

var characteristics by mutableStateOf(listOf<Characteristic>())

然后,我可以给List分配数据或修改它,UI将正确地重组:

characteristics = issuesRepository.getCharacteristics()
characteristics = characteristics.plus(newCharacteristic)

然而,我最近偶然发现了几种包含关键字mutableStateListOf()的方法,然后将List分成两个单独的变量似乎是一种常见的做法,如:

private val _characteristic = mutableStateListOf<Characteristic>()
val characteristic: List<Characteristic> = _characteristic

这些方法有什么不同,其中一种被认为是最佳实践还是更干净的方法?

使用mutableStateOf创建一个可观察对象。因此,只要将一个新实例分配给这个状态,就会发生重组。假设您希望在向列表中添加新项后进行重组。在这种情况下,您需要创建这个列表的副本,将元素添加到这个复制的列表中,然后将复制的列表分配给状态。

mutableStateListOf创建一个可观察列表。您在此列表中所做的所有操作(添加,删除,更新)都将导致重新组合。

最新更新