inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

모던 안드로이드 - Jetpack Compose 입문

mutableStateOf에 초기값을 안 넣을 수는 없을까요?

해결된 질문

489

edu02

작성한 질문수 2

1

강사님 강의 덕분에 쉽고 빠르게 Compose를 학습하고 있습니다.

 

강의를 레퍼런스 삼아서 Compose로만 앱을 제작하고 있는데요

 

ViewModel에서 State를 사용해서 여러 작업을 하는 도중
초기값이 필요 없는 경우가 생겼습니다.

 

하지만 State에 초기값을 넣어주지 않으면 에러가 발생해
private val allItem = mutableStateOf<List<ItemEntity>?>(null) val allItem: State<List<ItemEntity>?> = allItem
이렇게 null을 넣어서 사용 중인데

이러다 보니 매번 null 체크를 해줘야하는 번거로움이 발생하고 코틀린의 장점을 잘 활용 못하고 있다는 생각이 들었습니다.

 

당연히 State에 초기값을 안 넣어주고 사용하는 법도 찾아봤는데 일단 원하는 답은 찾지 못했습니다.

 

혹시 어떻게 하면 좋을까요?

 

 

android kotlin jetpack

답변 1

1

오준석

State에 넣을 데이터가 List 라면 빈 리스트를 넣으면 됩니다.

private val allItem = mutableStateOf(emptyList<ItemEntity>()) 정도가 되겠네요

0

edu02

답변 감사합니다!

혹시 그렇다면 List가 아닌 data class일 경우는 어떻게 하면 될까요?


private val item = mutableStateOf<ItemEntity?>(null)

val item: State<ItemEntity?> = item

이러한 형식은 어떻게 null 값을 벗어날 수 있을까요?

1

오준석

상태들을 한번더 State 홀더용 클래스로 묶는 방법이 있습니다.

https://developer.android.com/topic/architecture/ui-layer/events?hl=ko 에서 NewsUiState 가 그러한 용도의 클래스입니다.

예를 들면 다음과 같이요.

data class UiState(val item: ItemEntity?)

ViewModel 사용 관련 질문

0

77

1

onTabFavorite 콜백 관련 질문

0

60

2

livedata가 왜 필요한 건지 궁금합니다

0

131

3

깃허브에 있는 MemoryTodoRepository 는 룸을 사용하는게 아닌 메모리에 저장, 수정, 삭제 하는건가요?

0

174

1

이젠 아래와 같은 오류가 뜨는데 KSP가 문제 인걸까요?

0

370

2

영상 1분쯤에서 MainActivity에서 viewModel이 저는 안되고 그래들 문제인거 같은데 해결 방법을 모르겠습니다.

0

188

1

전자액자에서 영상과 깃허브의 내용이 달라서 영상을 다보고 깃허브 내용으로 돌려봤는데 권한요청부터가 안됩니다.

0

189

2

Navigation수업에서 string대신 bitmap을 인자로 넘겨주는 방법?

0

179

1

TodoList - 04에서 recentlyDeleteTodo가 null일 경우 처리 방법 문의

0

171

1

나만의 웹 브라우저 03 - UI와 ViewModel 연동 강의에서 질문들이 있습니다.

0

207

2

Scaffold를 사용하면 Content padding parameter it is not used 에러

0

352

1

Material3로 바뀌면서 강의랑 다른 부분이 초반부터 있는데요.

0

223

1

강의에서 사용하는 리소스(이미지 등)을 다운 받을 수 있으면 좋겠어요.

0

248

2

Card Compose에서 elevation 옵션

1

347

1

구글맵 질문입니다

0

233

1

구글맵강의중에서 ..

0

580

7

drawCircle( color = Color.... 부분에서 빨간줄이 ...

0

270

2

val scaffoldState = rememberScaffoldState() 에서 빨간줄이 생기네요

0

527

1

나만의 웹브라우져 02 코드실행시 에뮬레이터에 따라

0

221

1

나만의 웹브라우져 01 코딩 후 실행하면 아래와 같은 오류가 뜨네요

0

3222

2

비만도계산기 로직작성 에서 문제가 발생했어요 ^^

0

340

3

viewModel() 오류 추가질문입니다

0

1121

2

viewModel: MainViewModel = viewModel() 에 오류있습니다

0

538

3

AAR metadata 관련오류발생

0

1438

3