collectAsState() は LazyColumn の中では呼ぶ事が出来ない
LazyColumn の DSLスコープ(ラムダの中身) は Composable 関数ではないため、@Composable な collectAsState() を呼ぶとエラーになります。
エラーメッセージ例
@Composable invocations can only happen from the context of a @Composable function
下記のようにはできないので注意
LazyColumn(modifier = Modifier.fillMaxSize()) {
val memoListSortType by settingsViewModel.memoListSortType.collectAsState()
...
}
collectAsState() は Composable 関数直下(UIツリーを組み立てる位置)で呼び出して、
LazyColumn の中では すでに State に変換された値を使うようにします。
ようするに
collectAsState() は 必ず Composable のスコープ直下で呼ぶ。
LazyColumn の中で呼ぶのは NG という事です。