Вызов нескольких функций ViewModel на экране против одной функции ViewModelAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Вызов нескольких функций ViewModel на экране против одной функции ViewModel

Сообщение Anonymous »


Скажем, в OrderScreen у нас есть OrderViewModel(orderRepository) и UserViewModel(userRepository).

Подход №1:

class OrderViewModel(private val orderRepository: OrderRepository) : ViewModel() { весело doSomething() = viewModelScope.launch { заказРепозиторий.doSomething() } } класс UserViewModel(private val userRepository: UserRepository): ViewModel() { весело doSomething() = viewModelScope.launch { userRepository.doSomething() } } @Композитный забавный OrderScreen( OrderViewModel: OrderViewModel = viewModel(), userViewModel: UserViewModel = viewModel() ) { someButton.setOnclickListener { заказViewModel.doSomething() userViewModel.doSomething() } } Подход №2:

класс OrderViewModel( частный вал orderRepository: OrderRepository, частный val userRepository: UserRepository ) : ViewModel() { весело doSomething() = viewModelScope.launch { заказРепозиторий.doSomething() userRepository.doSomething() } } @Композитный весело OrderScreen (orderViewModel: OrderViewModel = viewModel()) { someButton.setOnclickListener { заказViewModel.doSomething() } } Какой из них лучше и почему? Спасибо.
Ответить

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

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

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

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

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