问题标签 [stateflow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
121 浏览

android - 布尔流同步

我在 ViewModel 类中有几个 StateFlow 字段。它是添加/编辑表单屏幕,其中每个 StateFlow 都是屏幕上每个可编辑字段的验证属性。

我想写一些带有 StateFlow 属性的 FormValidation 类来验证整个表单的状态。该字段的值基于所有字段的验证状态值,当所有字段有效时发出 true,当任何字段无效时发出 false。

像这样的东西:

我知道如何做到这一点,LiveData<Boolean>MediatorLiveData我不明白如何做到这一点。


基于@tenfour04 答案的解决方案

带有 StateFlow 和 ViewModel 的演示代码

0 投票
0 回答
160 浏览

android - 恢复状态流持有的视图状态

假设我们有一个简单的片段,其视图基于StateFlow视图模型中保存的 UI 状态。我们onCreate()通常收集状态:

现在我们导航到下一个片段 - 前一个片段由片段管理器保存,但视图被销毁。在新的片段上,我们弹回堆栈,现在令人惊讶的是:前一个片段正在重新创建初始状态的视图,即使我们尝试更新状态流也不会发生任何事情,因为它不会一个接一个地发出两次相同的数据。

那么,返回fragment后如何恢复视图状态呢?

0 投票
0 回答
37 浏览

string - 如何在 Stateflow 中将字符串作为输出变量

我想打印一个字符串(即消息)作为状态流过程的输出。但是,看起来 stateflow 没有将字符串分配给输出变量。任何想法如何解决这个问题?这是错误消息和我的状态流图:

错误信息

模拟链接文件

0 投票
0 回答
173 浏览

android - 使用数据绑定显示的 StateFlow 值未更新

我已在我的应用程序中从使用 LiveData 切换到 StateFlow,并将其应用到数据绑定中。但是更改 StateFlow 的值后,UI 没有更新。根据我从StateFlow 文档中了解到的情况,我只需为valueStateFlow 的属性分配一个新值即可更新其消费者。

下面,我有一个时间字段,我使用MaterialTimePicker对话框更新值。selectedAlarm但是在我更改时间并为我的视图模型的属性 ( )分配一个新值后StateFlow,UI 不会针对新值进行更新。我不确定我的错误在哪里或缺少什么。

下面是我的AlarmFormFragment

下面是 xml 文件AlarmFormFragment

下面是我的AlarmsViewModel

以下是数据类Alarm

0 投票
0 回答
113 浏览

matlab - 为什么 MATLAB Stateflow 针对不存在的输出端口显示尺寸错误?

我正在使用 Stateflow,特别是基于 Simulink 的状态,但遇到了问题。如第一张图片右侧的红色框中所示,我的图表仅包含“8 个输出”。但是,不存在的“输出端口 10”不断出现以下错误:

在此处输入图像描述

在此处输入图像描述

0 投票
2 回答
569 浏览

android - 可变状态 VS 可变状态流?

我很困惑,有人可以向我解释一下,这两者之间的主要区别是什么?我很难理解。mutableState 是在 Jetpack Compose 中引入的,现在我的问题是,我们是否应该在 View Model 中使用它来替代 Mutabel State Flow?它们的目的和主要区别是什么?

0 投票
2 回答
76 浏览

kotlin - 更新 Kotlin StateFlow 而不发出更改

是否可以在不发出更改的情况下更新 Kotlin StateFlow?用例是,当用户缩放图表视图时,我希望在活动恢复时恢复该视图,但在缩放过程中跳过 StateFlow 事件。

0 投票
0 回答
79 浏览

android - 为什么 UI 不接收来自 ViewModel 的 StateFlow 更改?- 安卓科特林

我正在做一个练习项目,我将订阅者存储在房间数据库中。我在 DAO 中使用流,稍后在视图模型中将它们作为状态流。这很好用,但是当我更新任何订阅者(更改他们的姓名或电子邮件)时,用户界面为什么没有反应。它仅在我插入或删除时更新。可能是什么问题呢?以这种方式使用 StateFlow 是否最佳?

(它适用于 LiveData,但我想尝试使用 StateFlows)

我感谢任何形式的帮助

视图模型:

主要活动:

0 投票
1 回答
84 浏览

kotlin - 如何在kotlin中打印流的大小

嘿,我是 kotlin flow的新手。我正在尝试打印流量大小。众所周知,列表具有size()功能。我们是否有类似的功能flow

输出

我们如何在流量中获得大小值?

谢谢

0 投票
2 回答
298 浏览

android - 为什么在 kotlin 中流对方付费电话两次以上?

嘿,我正在 android 的 kotlin flow 中工作。我注意到我的 kotlin 流程collectLatest调用了两次,有时甚至更多。我尝试了这个答案,但它对我不起作用。我在我的collectLatest函数中打印了日志,它打印了日志。我正在添加代码

MainActivity.kt

活动视图模型.kt

我不明白为什么这是两次调用。我正在附加日志

如您所见,它调用了两次。但是我加载的数据比它调用的数据多两倍。我不明白为什么它不止一次调用。有人可以指导我做错了什么。如果您需要完整代码,我将添加我的项目链接