如何在 Observable 实时数据函数中调用 jetpack compose 函数?
How can I call jetpack compose function in Observable live data function?
你好,我尝试将其称为 updatedata(it)
的组合函数
viewModel.ResponseStatus.observe(viewLifecycleOwner) { status ->
when (status) {
FragmentViewModel.PROCESSING,
FragmentViewModel.NOT_PROCESSING -> {
viewModel.object.let {
updatedata(it). <--- error?
} ?: faildialog()
}
这就是我的 updatadata()
功能
@ExperimentalFoundationApi
@OptIn(ExperimentalAnimationApi::class)
@ExperimentalUnitApi
@Composable
private fun updatedata(authdata: Payload) {
composefunction(authdata.client_name)
}
我得到的错误是@Composable invocations can only happen from the context of a @Composable function
这就是我调用的 compose 函数
@ExperimentalUnitApi
@ExperimentalAnimationApi
@ExperimentalAnimationGraphicsApi
@ExperimentalFoundationApi
@Composable
fun composefunction(name: String) {
Box(){}
}
我不熟悉流或实时数据,更不用说可组合的了,我必须更改哪一部分才能将实时数据传递到组合函数中?
在可组合的世界中,您不会告诉视图在状态更改后要做什么。
@ExperimentalFoundationApi
@OptIn(ExperimentalAnimationApi::class)
@ExperimentalUnitApi
@Composable
private fun updatedata(viewModel: YourViewModel, authdata: Payload) {
val responseState by viewModel.ResponseStatus.observeAsState()
when (status) {
FragmentViewModel.PROCESSING,
FragmentViewModel.NOT_PROCESSING -> {
viewModel.object.let {
composefunction(authdata.client_name)
} ?: faildialog()
}
}
}
我强烈建议您学习刚才提到的所有内容:LiveData、MutableState 以及如何在 Composable 中思考这些内容如何协同工作。
你好,我尝试将其称为 updatedata(it)
viewModel.ResponseStatus.observe(viewLifecycleOwner) { status ->
when (status) {
FragmentViewModel.PROCESSING,
FragmentViewModel.NOT_PROCESSING -> {
viewModel.object.let {
updatedata(it). <--- error?
} ?: faildialog()
}
这就是我的 updatadata()
功能
@ExperimentalFoundationApi
@OptIn(ExperimentalAnimationApi::class)
@ExperimentalUnitApi
@Composable
private fun updatedata(authdata: Payload) {
composefunction(authdata.client_name)
}
我得到的错误是@Composable invocations can only happen from the context of a @Composable function
这就是我调用的 compose 函数
@ExperimentalUnitApi
@ExperimentalAnimationApi
@ExperimentalAnimationGraphicsApi
@ExperimentalFoundationApi
@Composable
fun composefunction(name: String) {
Box(){}
}
我不熟悉流或实时数据,更不用说可组合的了,我必须更改哪一部分才能将实时数据传递到组合函数中?
在可组合的世界中,您不会告诉视图在状态更改后要做什么。
@ExperimentalFoundationApi
@OptIn(ExperimentalAnimationApi::class)
@ExperimentalUnitApi
@Composable
private fun updatedata(viewModel: YourViewModel, authdata: Payload) {
val responseState by viewModel.ResponseStatus.observeAsState()
when (status) {
FragmentViewModel.PROCESSING,
FragmentViewModel.NOT_PROCESSING -> {
viewModel.object.let {
composefunction(authdata.client_name)
} ?: faildialog()
}
}
}
我强烈建议您学习刚才提到的所有内容:LiveData、MutableState 以及如何在 Composable 中思考这些内容如何协同工作。