- Значение StateFlow не присвоено объекту BoardRequestDto.
- Последнее значение StateFlow не собирается должным образом в функции createPost.
- дополнительный код
Код: Выделить всё
// ViewModel.kt
private fun createPost() {
viewModelScope.launch {
_uiState.value = PostBoardUiState.Loading
combine(
title,
content,
region,
startDate,
endDate,
capacity,
boardStatus,
category,
preferredAge,
preferredGender,
imageUris,
tagNames
) { values ->
val title = values[0] as String
val content = values[1] as String
val region = values[2] as Region?
val startDate = values[3] as String
val endDate = values[4] as String
val capacity = values[5] as Int
val boardStatus = values[6] as BoardStatus
val category = values[7] as List
val preferredAge = values[8] as PreferredAge?
val preferredGender = values[9] as PreferredGender?
val imageUris = values[10] as List
val tagNames = values[11] as List
BoardRequestDto(
title = title,
content = content,
region = region ?: Region.SEOUL,
startDate = startDate,
endDate = endDate,
capacity = capacity,
boardStatus = boardStatus,
categories = category,
preferredAge = preferredAge ?: PreferredAge.ANY,
preferredGender = preferredGender ?: PreferredGender.ANY,
imageUrls = imageUris,
tagNames = tagNames
)
}.collect { boardRequestDto ->
Log.d("PostBoardViewModel", "BoardRequestDto created: $boardRequestDto")
try {
Log.d("PostBoardViewModel", "Attempting to post board")
val result = boardRepository.postBoard(boardRequestDto)
Log.d("PostBoardViewModel", "API response: $result")
when {
result.data != null -> {
val boardIdDto = result.data
_createdBoardIds.value += boardIdDto!!.boardId
_uiState.value = PostBoardUiState.Success(boardIdDto)
Log.d(
"PostBoardViewModel",
"Post created successfully with ID: ${boardIdDto.boardId}"
)
}
result.error != null -> {
val errorMessage = result.error!!.message
_uiState.value = PostBoardUiState.Error(errorMessage)
Log.e("PostBoardViewModel", "Error creating post: $errorMessage")
}
else -> {
_uiState.value = PostBoardUiState.Error("알 수 없는 오류가 발생했습니다.")
Log.e(
"PostBoardViewModel",
"Unknown error occurred while creating post"
)
}
}
} catch (e: Exception) {
_uiState.value = PostBoardUiState.Error("네트워크 오류: ${e.message}")
Log.e("PostBoardViewModel", "Exception while creating post", e)
}
}
}
}```
- Значения не собираются даже при объединении и CollectLatest используются.
- Проверьте, правильно ли установлено значение перед вызовом createPost -> Оно установлено правильно
- До тех пор, пока не будет создан createPost< /code>, значение StateFlow проверяется на предмет того, является ли оно последним значением, но ему присваивается начальное значение внутри функции.
- Copilot и GPT не решают проблему
Подробнее здесь: https://stackoverflow.com/questions/790 ... t-updating