[英]Difference between observeAsState and collectAsState and when to use each in Android Jetpack Compose?
I am learning Jetpack Compose but facing some issues in understanding states.我正在学习 Jetpack Compose,但在理解状态方面遇到了一些问题。 Can someone explain these two?
有人可以解释这两个吗? observeAsState and collectAsState.
observeAsState 和 collectAsState。 Thank you.
谢谢你。
observeAsState
is an extension on LiveData
. observeAsState
是LiveData
的扩展。
Starts observing this LiveData
and represents its values via State
.开始观察这个
LiveData
并通过State
表示它的值。
Uses Lifecyle
internally for safely observing the data.在内部使用
Lifecyle
来安全地观察数据。
collectAsState
is an extension on StateFlow
. collectAsState
是StateFlow
的扩展。
Collects values from this StateFlow
and represents its latest value via State.从此
StateFlow
收集值并通过 State 表示其最新值。
You need to handle the collection as per appropriate Lifecyle
.您需要根据适当的
Lifecyle
处理集合。
Source: Compose#LiveData & Compose#Flow .来源: Compose#LiveData和Compose#Flow 。
An addition of Darshan´s answer is that in version 2.6.0-alpha.1 we have a new extension function that takes care of lifecylce when collecting StateFlow. Darshan 的另一个答案是,在版本 2.6.0-alpha.1 中,我们有一个新的扩展 function,它在收集 StateFlow 时处理生命周期。
Link of release notes: https://developer.android.com/jetpack/androidx/releases/lifecycle?hl=es-419#2.6.0-alpha01发行说明链接: https://developer.android.com/jetpack/androidx/releases/lifecycle?hl=es-419#2.6.0-alpha01
Example of use.使用示例。 https://medium.com/tech-takeaways/how-to-safely-collect-flows-lifecycle-aware-in-jetpack-compose-a-new-approach-ed20ead25be9
https://medium.com/tech-takeaways/how-to-safely-collect-flows-lifecycle-aware-in-jetpack-compose-a-new-approach-ed20ead25be9
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.