首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用ViewModel在片段之间传递数据?

如何使用ViewModel在片段之间传递数据?
EN

Stack Overflow用户
提问于 2021-06-24 20:57:41
回答 1查看 42关注 0票数 0

我在每个屏幕上使用Koin和Fragment + ViewModel。在我的HomeFragment中,我有一个带有post的列表。当用户选择post时,我将用户导航到PosDetailsFragment,并希望显示有关post的信息。

代码语言:javascript
运行
复制
class HomeFragment : Fragment() {
               private val homeViewModel by viewModel<HomeViewModel>()

               //when user select post I set that value to LeadViewModel (I want to make that viewModel as common for some fragment)
               leadViewModel.state.selectedPost.value = action.post
}


class PostDetailsFragment : Fragment() {
        private val leadViewModel by sharedViewModel<LeadViewModel>()
    
        //always null
        val post = leadViewModel.state.selectedPost.value
}

我的Koin模块:

代码语言:javascript
运行
复制
    viewModel { LeadViewModel() }
    viewModel { HomeViewModel(get(bottomNavigationCommander), get()) }
    viewModel { AddPostViewModel() }

怎么啦?看起来PostDetailsFragment中的LeadViewModel实例与HomeFragment中的完全不同?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-24 21:23:52

尝试将val设置为支持字段

代码语言:javascript
运行
复制
        val post
          get() = leadViewModel.state.selectedPost.value
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68116269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档