mutableStateListOf
ListをStateとしてComposeのrecompose起点としたい場合にはmutableStateListOf()関数を用いてListを作成すればよい。
viewmodel層に作成しておけばいいので基本的には以下となる
private val _items = mutableStateListOf<String>() val items: List<String> get() = _items
List<List<T>>の内部Listの変更を検知したい
Listがネストされている時に内部のListの変更まで検知したい場合には、以下のように内部のListもSnapshotStateListOfとする必要があります。
private val _items = mutableStateListOf<SnapshotStateList<String>>() val items: List<List<String>> get() = _items
公開変数についてはともにListとして不用意な変更を受け付けないようにします。
もし内部のListをSnapshotStateListとせずに、MutableListやListを使用した場合は、そのListの置き換えに対して外部のSnapshotStateListは検知してくれますが、そのListの変更については検知してくれません。