Сбой царства при создании объекта (React Native) - PullRequest
1 голос
/ 12 марта 2019

Это мой файл RealmService:

import Realm from 'realm';

const AuthSchema = {
    name: 'Auth',
    primaryKey: 'id',
    properties: {
        id: {
            type: 'int',
            indexed: true
        },
        time: 'date',
        username: 'string',
        action: 'string'
    }
}

const WiretransferSchema = {
    name: 'Wiretransfer',
    primaryKey: 'id',
    properties: {
        id: {
            type: 'int',
            indexed: true
        },
        time: 'date',
        source: 'string',
        target: 'string',
        amount: 'float',
        comments: {
            type: 'string',
            optional: true
        }
    }
}

let RealmService = {
    findAllAuth: function() {
        return repository.objects('Auth');
    },

    SaveAuth: function(username, action) {
        Realm.open({
            path: 'testtt.realm',
            schema: [AuthSchema, WiretransferSchema]
        }).then(realm => {

            // Get max ID
            var maxId = realm.objects('Auth').max('id');

            realm.write(() => {
                realm.create('Auth', {
                    id: maxId + 1,
                    time: Date.now(),
                    username: username,
                    action: action
                }, true);
            });

            realm.close();  
        }).catch(err => {
            console.log(err);
        });
    }
}

module.exports = RealmService;

Приложение вылетает без ошибок при вызове этого кода:

realm.write(() => {
                realm.create('Auth', {
                    id: maxId + 1,
                    time: Date.now(),
                    username: username,
                    action: action
                }, true);
            });

Просто метод записи не приводит к сбою приложения. Это метод создания.

Если я отключаю средства отладки в React Native, приложение не вылетает, но в файл области ничего не добавляется.

Я пробовал RN 0,57,1 и 0,57,8. Переустановил царство и все равно не повезло. В чем может быть проблема?

1 Ответ

1 голос
/ 12 марта 2019

Убедитесь, что типы данных и объекты, которые вы передаете, совпадают. Я получил тот же сбой, когда мой тип данных был int , и я дал ему string .

В вашем случае передача new Date() будет работать.

Это не выдаст никаких ошибок, но приложение будет зависать как на Android, так и на iOS. Возможно, команда Realm решит эту проблему в будущем выпуске, поскольку эта ошибка уже существует на форуме Github.

...