0

试图将一个新的 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即使我可以看到它并且它是我打印对象时的内容......

4

1 回答 1

0

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

于 2019-05-25T21:26:43.030 回答