У меня есть компонуемый ViewLiability. Я передаю ему идентификатор базы данных Android Room для строки базы данных Liability. Я собираю LiabilityWithExpense как состояние:
Код: Выделить всё
val liabilityWithExpense by liabilityViewModel.getFullLiabilityById(liabilityId).collectAsState(LiabilityWithExpense.placeholder())
На экране ViewLiability , пользователь может делать что угодно и нажимать кнопку, которая в конечном итоге удалит объект, а затем немедленно вытолкнет стек навигации.
Код: Выделить всё
suspend fun finishPayoff() {
liabilityViewModel.delete(liabilityWithExpense.liability)
navController.popBackStack()
}
Как я могу удалить базовые данные и извлечь стек навигации без перекомпоновки экрана и сбоя?
Или я с самого начала подхожу к этому неправильно? Есть ли какой-то стандартный шаблон, который мне следует использовать?
К вашему сведению, я уже пытался прочитать другие вопросы и нашел поток базы данных Jetpack Compose Room, удаление элемента из базы данных вызывает перекомпоновку, которая запрашивает почти точно мой тот же вопрос, но предоставленный ответ касается ситуации со списком пользователей и того, как этого удаленного пользователя больше не будет. Но это не настоящий вопрос, потому что этого вопроса (и моего вопроса) нет в разделе «Список» пользовательского интерфейса. Мы находимся на экране ViewingASingleObject, и этот объект удаляется.
Подробнее здесь: https://stackoverflow.com/questions/790 ... g-the-unde