小编Bor*_*vić的帖子

在 Jetpack Compose + Hilt + ViewModel 中从 ViewModel 导航的正确方法是什么?

我偶然发现了这个非常琐碎但棘手的问题。我花了相当多的时间搜索官方文档,但不幸的是没有找到答案。

官方文档说您应该将 down 的实例传递NavController@Composable-s ,并将其称为onClick = { navController.navigate("path") }。但是,如果我必须从 ViewModel 触发导航事件(例如登录时重定向、重定向到新创建的帖子页面),会发生什么情况?等待任何协程(例如 HTTP 请求)@Composable不仅不好,而且可能会因为 UI 线程被阻塞而迫使 Android 终止应用程序

非官方解决方案(主要以 Medium 文章的形式记录)基于具有单例类并观察某些MutableStateFlow包含路径的概念。

这在理论上听起来很愚蠢,并且在实践中没有多大帮助(副作用和重组不友好,会触发不必要的重新导航)。

android kotlin android-jetpack-compose dagger-hilt

14
推荐指数
2
解决办法
5281
查看次数

我应该将stdout和stdin设置为在C中无缓冲吗?

因为stdinstdout有时缓冲printf,scanfgetchar没有执行.我通常使用刷新输出缓冲区,fflush(stdout)但代码因此而变得非常难以理解.如果我设置stdinstdout无缓冲使用setbuf(stdin, NULL),setbuf(stdout, NULL)我会让我的程序表现更好还是更差?

c buffer stdin stdout

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