Jetpack Compose: следует ли передавать ViewModel вниз по дереву компонентов или использовать обратные вызовы?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Jetpack Compose: следует ли передавать ViewModel вниз по дереву компонентов или использовать обратные вызовы?

Сообщение Anonymous »

У меня есть структура вложенных компонентов в Jetpack Compose, где глубоко вложенный компонент должен взаимодействовать с ViewModel. Я пытаюсь определить лучший подход для обработки этого взаимодействия.
Вот структура моего компонента:
class MainViewModel : ViewModel() {
fun handleButtonClick() {
// Do something
}
}

// Approach 1: Passing ViewModel down
@Composable
fun ComposableA(viewModel: MainViewModel) {
ComposableB()
ComposableC(viewModel = viewModel)
}

@Composable
fun ComposableC(viewModel: MainViewModel) {
ComposableD(viewModel = viewModel)
}

@Composable
fun ComposableD(viewModel: MainViewModel) {
Button(onClick = { viewModel.handleButtonClick() }) {
Text("Click Me")
}
}

// Approach 2: Using Callbacks
@Composable
fun ComposableA(viewModel: MainViewModel) {
val onButtonClick = { viewModel.handleButtonClick() }

ComposableB()
ComposableC(onButtonClick = onButtonClick)
}

@Composable
fun ComposableC(onButtonClick: () -> Unit) {
ComposableD(onButtonClick = onButtonClick)
}

@Composable
fun ComposableD(onButtonClick: () -> Unit) {
Button(onClick = onButtonClick) {
Text("Click Me")
}
}

Which approach is considered better practice?


Подробнее здесь: https://stackoverflow.com/questions/791 ... e-callback
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»