作曲不监听任何重复值



我有一个屏幕监听包含我需要的所有内容的数据类。ScreenState。每当用户按下按钮时,我都会将事件发送给ViewModel。这个特定的事件只是获取意图并像这样设置ScreenState参数。

screenStateFlow.emit(
ScreenState(
Intent(...)
)
)

发生的是,第一次工作(用户离开应用程序,然后返回到应用程序)。当用户返回到app并且没有任何来自意图的数据时希望他们能够再次开始一个意图。所以它做同样的动作

触发一个特定的事件,该事件获取意图并设置ScreenState参数并发出此值,再次

问题就在这里。值是相同的。所以compose不会自我重组。

这个解决方案有效。你可以说我不需要所有这些,它可以通过启动意图而不需要经过事件过程等来工作。但我希望这样(除非我找不到合适的解决方案)

screenStateFlow.emit(
ScreenState(
Intent(...),
!triggerRecompose
)
)

有更好的解决方案吗?

编辑:有人和我有同样的问题,提供的答案不起作用。我已经尝试过MutableState和ViewModel中compose的状态。不工作的话

我有一个类似的问题,我想触发一个零食栏,即使值是重复的。

我通过向消息对象添加一个变量参数(例如timestamp或Math.random())来解决这个问题。

这样,即使消息内容相同,message对象不同,也会触发状态变化。

最新更新