导航组件中需要函数调用“map(...)”

zah*_*med 2 navigation android android-fragments kotlin android-studio

我使用 android 导航组件已经有一段时间了,并且非常了解如何使用安全导航参数传递数据,但今天在 navArgs 生成的文件中遇到了一些意外错误。

出现这些错误:(还附上屏幕截图)

  1. 预期函数调用“map(...)”
  2. 没有为参数 'transform' 传递任何值
  3. 类型不匹配:推断类型是 List 而是 Array?预计
  4. 未解决的参考:it

我正在使用以下依赖项:

def nav_version = "2.5.3"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"

kotlin_version = '1.7.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

implementation 'androidx.navigation:navigation-fragment-ktx:2.6.0-alpha04'
implementation 'androidx.navigation:navigation-ui-ktx:2.6.0-alpha04'
Run Code Online (Sandbox Code Playgroud)

导航图

  <argument
        android:name="bulkForwardPackages"
        app:argType="app.px.packagex.models.domainmodels.MemberPackageItemDomainModel[]" />
Run Code Online (Sandbox Code Playgroud)

任意kt

navigate(DashboardListingFragmentDirections.actionDashboardListingFragmentToBulkForwardPackages(
                    listOf(memberPackage).toTypedArray(),
                    getMemberDetailsFromPackage(memberPackage)
                )
            )
Run Code Online (Sandbox Code Playgroud)

模型类

@Parcelize
data class MemberPackageItemDomainModel(
val packageId: Int = 0,
val memberId: Int = 0,
val building_id: Int = 0,
val mailroom_id: Int = 0,
val createdAt: String = "",
val created_by: String = "",
....
): Parcelable {}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

任何重新分级的帮助都将受到高度赞赏。谢谢

ian*_*ake 5

当使用长度恰好为19 个字符的参数时,这是一个已知问题- 生成的代码换行符恰好位于 Kotlin 中非法换行符的位置(需要位于同一行)。android:name{

将名称更改为短几个字符或长几个字符可以解决此问题。