바인딩된 Viewmodel로 접근할때 문제점

0

Activity나 layout를 xml에 binding 한 뒤에,
binding.viewmodel에서 호출하면 어떻게 될까?

        binding.viewmodel = requestAcceptViewmodel

        binding.newView.setOnClickListener {
           binding.viewmodel.changeSort("desc")
        }

답은 오류가 난다.

Smart cast to 'OrderRequestAcceptViewModel' is impossible, 
because 'binding.viewmodel' is a mutable property that could have been changed by this time

설명하자면,
binding된 Viewmodel은 가변이기 떄문에, 이후에 값이 변경되었는지 알수없다.

그래서 이런 오류가 호출되며, 빌드시 에러가 발생한다.

그러니 binding.viewmodel을 접근해서 뭔가를 하려는 생각을 자제하자.

profile
쉽게 가르칠수 있도록 노력하자

0개의 댓글