Как добавить вложенный список объектов в Realm Ошибка: значение JS должно быть типа: объект

Я пытаюсь создать базу данных Realm, в которой есть массив объектов json с вложенным массивом объектов.

Когда я пытаюсь добавить, используя приведенный ниже код, я всегда получаю сообщение об ошибке: значение JS должно быть типа: объект.

Схемы:

import Realm from 'realm';

class Exercise extends Realm.Object {
}
Exercise.schema = {
    name: 'Exercise',
    primaryKey: 'id',
    properties: {
        id: 'int',
        name: 'string',
        category: 'string',
        bodyPart: 'string',
        levels: {type: 'list', objectType: 'Level'}
    }
};

class Level extends Realm.Object {
}
Level.schema = {
    name: 'Level',
    properties: {
        level: 'int',
        equipments: 'string'
    }
};

export default new Realm({schema: [Exercise, Level, Multiplier]});

и метод, в котором я пытаюсь создать базу данных:

 realm.write(() => {
        let exercise = realm.create('Exercise', {
            id: 209,
            name: 'Dumbbell Overhead Press',
            category: 'Military Press',
            bodyPart: 'Shoulder'
        }, true);

        exercise.levels.push({
            level: 3,
            equipments: 'DB'
        });

    });

Я пытался всеми возможными способами, помещая массив непосредственно в создание упражнения и т. Д., У меня не было успеха.

Ваше здоровье


person Kaleb Portilho    schedule 06.07.2016    source источник


Ответы (1)


Вы должны указать индекс записи. Поскольку exercise.возвращает запись, а не объект упражнения

попробуйте это вместо

realm.write(() => {
    let exercise = realm.create('Exercise', {
        id: 209,
        name: 'Dumbbell Overhead Press',
        category: 'Military Press',
        bodyPart: 'Shoulder'
    }, true);
    exercise[0].levels.push({
        level: 3,
        equipments: 'DB'
    });

});
person Ismail Iqbal    schedule 27.07.2016
comment
Спасибо за помощь, я пошел другим путем в своем проекте, поэтому я не могу проверить, работает он или нет, но я ценю ваше время. - person Kaleb Portilho; 27.07.2016
comment
если возможно, вы можете проверить это для себя и отметить как правильный ответ - person Ismail Iqbal; 28.07.2016