【问题标题】:Is it right to call viewModel's method from view in Android mvvm在Android mvvm中从视图中调用viewModel的方法是否正确
【发布时间】:2020-08-22 09:10:10
【问题描述】:

我正在使用 mvvm 模式构建 android 应用程序。听说视图建议不要包含除 UI 之外的业务逻辑。不知道从视图中调用viewModel的方法是否可以。

例如,有一种方法是将列表A添加到列表B(列表A是用户的选择)。

fun setSelectedList(
    listA: ArrayList<Something>,
    listB: ArrayList<Something>
) {
    listB.addAll(listA)
} //written in kotlin

这个方法是从视图中调用的

这个方法应该在视图中吗?还是应该位于 viewModel 中?

【问题讨论】:

    标签: android mvvm viewmodel android-viewmodel android-mvvm


    【解决方案1】:

    如果您希望您的数据在屏幕旋转等配置更改中保留下来,那么您应该将修改或存储数据的方法放在ViewModel 中,然后在需要时从您的视图中调用该方法。您可以参考this 了解更多信息。

    【讨论】:

    • 感谢您的回答。好吧,我不是在问如何保留数据。我想知道的是把一个处理数据的方法放到ViewModel中,减少View的代码行,从View调用该方法就可以了?
    • @고현석,这取决于你喜欢怎么做。作为一般惯例,您应该尽可能保持 View/Activity 类的干净。所以将数据移动到 ViewModel 是首选。
    • 感谢您的回答和好意
    猜你喜欢
    • 1970-01-01
    • 2016-04-26
    • 2021-11-18
    • 2011-09-17
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    相关资源
    最近更新 更多