当我将非空值放入其参数的可为空列表字段时,NavController 导航不起作用

问题描述 投票:0回答:1

我有一个接受具有可为空字段的模型的目标。之前,因为该可为空字段并不那么重要(因为我有其他方法来获取该可为空字段的值,基本上该可为空字段是多对多关系),所以我没有费心去获取该字段的值我的API。但现在我有时间优化我的流程,我终于修复了我的 API,现在我还传递了 m2m 字段的值。但是,由于某种原因,具有该值会破坏

NavController
navigate()
,而以前对于该 m2m 字段为空值是可以的。两种模型都已经是可序列化的。这是我收到的错误:

FragmentNavigator 不知道片段 SomeFragment。请 使用navigate()函数将片段添加到FragmentNavigator 托管 FragmentManager

我的模型看起来像这样:

data class Account(
    @SerializedName("id") var id: String,
    ... some other fields
    @SerializedName("m2m_field") var model1s: List<Model1>?,
) : java.io.Serializable

//Model1 seems to not need @SerializedName(), and I can use it for other Retrofit calls without any issue
//I even got an error when I added @SerializedName() to the fields
data class Model1(
    @PrimaryKey(autoGenerate = false) @ColumnInfo(name = "id") var id: String,
    @ColumnInfo(name = "created_at") var created_at: String,
    ... some other fields
) : java.io.Serializable
android kotlin retrofit navcontroller
1个回答
0
投票

我已经找到了这个问题的答案。原因有点愚蠢,原因是我在

Model1
上有一个字段可以在我的用例中为 null,但我没有将其声明为可为 null。但有些东西不喜欢那样。因此,请仔细检查您的
Retrofit
回复及其相应的型号,并确保它们 100% 兼容。

© www.soinside.com 2019 - 2024. All rights reserved.