领域对象列表函数未定义,即使对象已定义且列表已填充

Posted

技术标签:

【中文标题】领域对象列表函数未定义,即使对象已定义且列表已填充【英文标题】:Realm object list functions are undefined, even though object is defined and list is populated 【发布时间】:2019-05-25 21:01:42 【问题描述】:

试图将一个新的 int 推送到一个 int 领域列表中。我可以获取 Realm 对象,我可以打印它,当我打印对象时,它会显示列表及其内容,我可以使用 Realm Studio 进行编辑、向列表中添加数字等。但是当我尝试调用任何方法时形成它说它未定义的列表。

试过async,await,然后,虽然是同步问题,但好像不是。

下面的代码与我的类似,但经过编辑以隐藏原始名称等,并且没有原始的所有属性,但它不会改变我正在尝试编辑的特定列表的行为。其他一切正常。 我有一个类似的架构

let mySchema=
    name:'MySchema',
    properties:
        my_schema_id: 'string',
        numbers: 'int[]'
    

创建新对象的函数是

Realm.open(schema: [mySchema])
  .then(realm => 
    realm.write(() => 

        realm.create('MySchema', my_schema_id: `$my_schema_id`, numbers: [parseInt(number, 10)]);
      );

我尝试添加一个数字:

Realm.open(schema: [mySchema])
    .then((realm) => 
    let fetchedSchema = realm.objects('MySchema').filtered(`my_schema_id ="$my_schema_id"`);

console.log(fetchedSchema);
    realm.write(()=>
        fetchedSchema.numbers.push(parseInt(number, 10));
    );

它给出了一个错误:

(node:73249) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'length' of undefined

我希望将项目推送到列表中,或者能够调用列表函数。相反,当我尝试使用它显示为undefined 的列表时,即使我可以看到它并且在我打印对象时它的内容...

【问题讨论】:

【参考方案1】:

找到了解决办法。 查询let fetchedSchema = realm.objects('MySchema').filtered(my_schema_id ="$my_schema_id"); 实际上会返回一个元素数组,所以我只需要选择第一个元素,最后加上[0]

【讨论】:

以上是关于领域对象列表函数未定义,即使对象已定义且列表已填充的主要内容,如果未能解决你的问题,请参考以下文章

如果在模板中使用变量获取错误未定义,则异步 vuex 获取操作状态已填充

监视属性中的Vuejs未定义对象[重复]

在python中的列表列表中使用已定义的函数

如何获取已注册的自定义元素列表

调用 PHP 中未定义的函数和数组键,即使它已明确定义?

$.getJSON 执行问题:json 到数组已填充但未使用