0

这是我的 MineSweeperView 类:

class MineSweeperView : View {

constructor(context: Context?) : super(context)
    constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
    private var userViewModel: UserViewModel


    init {
        ....
        userViewModel = ViewModelProvider(???).get(UserViewModel::class.java)
    }

ViewModelProvider( this ) 和 ( context ) 在 View 类中不起作用。

4

1 回答 1

0

你不能这样做。View 拥有 ViewModel 类是不合适的。ViewModel 仅适用于 LifecycleOwner,因为它们的范围仅限于 LifecycleOwner 的生命周期。这就是 ViewModel 存在的全部原因,它的生命由其他生命周期对象的生命控制。

于 2020-12-08T02:34:51.487 回答