1
resposta

Dúvida sobre view model com herança

fiquei em duvida sobre um assunto abortado no curso... é utilizado o login view model no fragment login e no base fragment para verificar se o usuário esta logado ou não no app. o view model foi instanciado nesses fragments com a sufixo view model do koin. A minha dúvida é: como nao é usado um shared view model, no base fragment, como ele consegue verificar se o usuário esta logado ou não? nao seria uma nova instancia criada?

1 resposta

Olá, Leonardo! Tudo bem?

Quando você utiliza o ViewModel em um fragment, ele é criado apenas uma vez, e sua instância é mantida durante a vida útil do fragment. Dessa forma, quando você utiliza o mesmo ViewModel em diferentes fragments, você está trabalhando com a mesma instância.

No caso do BaseFragment, que é uma classe abstrata que é estendida por outros fragments, o ViewModel é instanciado na classe filha que estende o BaseFragment. Isso significa que cada fragment que estende o BaseFragment terá sua própria instância do ViewModel.

Porém, como o ViewModel é criado apenas uma vez durante a vida útil do fragment, ele mantém seu estado mesmo quando o fragment é destruído e recriado. Dessa forma, mesmo que você navegue entre diferentes fragments que estendem o BaseFragment, o ViewModel manterá o estado das informações que foram salvas anteriormente.

Espero ter ajudado a esclarecer suas dúvidas! Se ainda tiver alguma pergunta, fique à vontade para perguntar.

Bons estudos!