即使定义了对象并填充了列表,领域对象列表功能仍未定义

时间:2019-05-25 21:01:43

标签: javascript node.js realm realm-list realm-js

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

尝试过异步,然后等待,尽管这是一个同步问题,但看起来并不像这样。

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

的架构
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 个答案:

答案 0 :(得分:0)

找到了解决方案。 查询let fetchedSchema = realm.objects('MySchema').filtered( my_schema_id =“ $ {my_schema_id}” );实际上会返回一个元素数组,因此我只需要选择结尾处[0]的第一个