• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

使用Transformations.map/switchMap的标红报错问题

武飞扬头像
qN1Sang
帮助1

前言

最近在学习《第一行代码》第三版的LiveData相关知识时候发现在使用如下代码的时候Transformations会标红报错:

val userName: LiveData = Transformations.map(userLiveData) { user ->
	"${user.firstName} ${user.lastName}" 
}

而我导入的依赖如下:

implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1'

对着Transformations疯狂Alt Enter也导不到合适的包,最后一通实验下终于找到原因。

原因

我试着降低了依赖版本,如下:

implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.5.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.0'

最后返回去对着Transformations进行Alt Enter发现成功导包:

import androidx.lifecycle.Transformations

而我把依赖版本复原后,将上述导包语句粘贴上去,果不其然,报错了

所以得出结论,应该是在最新的依赖版本中不再提供Transformations包,所以导致无法使用

替换方法

既然老方法无法使用,那就必有替换方法,如下:

val userName: LiveData<String> = userLiveData.map { user ->
    "${user.firstName} ${user.lastName}"
}

val userName: LiveData<String> = userLiveData.switchMap { user ->
    "${user.firstName} ${user.lastName}"
}

不再使用Transformations,而实现的效果是一样的。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgaikig
系列文章
更多 icon
同类精品
更多 icon
继续加载