Функции списка объектов области не определены, даже если объект определен и список заполнен - PullRequest
0 голосов
/ 26 мая 2019

Попытка вставить новый 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 голосов
/ 26 мая 2019

Нашел решение.Запрос let fetchedSchema = realm.objects('MySchema').filtered( my_schema_id = "$ {my_schema_id}" ); фактически возвращает массив элементов, поэтому мне просто нужно было выбрать первое с [0] в конце

...