小编Pen*_*0Ti的帖子

使用 Hilt 将 ViewModel 注入 ViewModel

我目前正在开发一个大项目,其中有一个 ViewModelA 使用 MediatorLiveData 来观察其他 LiveData 源。我想让这个 ViewModelA 观​​察来自 ViewModelB 的数据。

解决此问题的一种方法是让 Fragment 使用视图模型,并在 ViewModelB 数据更改时更新 ViewModelA。

@AndroidEntryPoint
class FragmentA: Fragment() {

    //ViewModels
    private val viewModelA: ViewModelA by viewModels()
    private val viewModelB: ViewModelB by viewModels()

    onViewCreated... {
       viewModelA.someFunction().observe{
           viewModelB.someLiveData.value = it
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

不过,我想出了另一个解决方案,使用 Hilt 将 ViewModelB 注入 ViewModelA 的构造函数中。

class ViewModelA @ViewModelInject constructor(
        private val viewModelB: ViewModelB
) : ViewModel() {}
Run Code Online (Sandbox Code Playgroud)

它目前有效,但我认为这不是一个好的做法。我在网上找不到关于此事的太多信息。这会引起任何问题吗?

android viewmodel dagger-hilt

10
推荐指数
1
解决办法
3246
查看次数

如何将一个组件覆盖在另一个组件之上

我想实现一个浮动操作按钮,并且想将其覆盖在组件的其他部分上,但无论如何它都位于其他组件下方,即使我尝试在父组件中实现它也是如此。

我想从材质 UI浮动操作按钮来实现它

这是我之前尝试过的:

const fabstyle = {
        margin: 0,
        top: 'auto',
        right: 20,
        bottom: 20,
        color:'green',
        left: 'auto',
        position: 'fixed',
};
return (
    <div >
        <Fab style={fabstyle}></Fab>
    </div>
)
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

1
推荐指数
1
解决办法
7279
查看次数

标签 统计

android ×1

dagger-hilt ×1

javascript ×1

reactjs ×1

viewmodel ×1