У меня RTM, я посмотрел на stackoverflow и до сих пор не удается с ограниченной документацией.У меня есть схема установки react native
realm
с добавленными записями.Он возвращает правильное количество записей, но я не могу получить какие-либо фактические записи из него для повторения.
Я просто пытаюсь получить Lat / Long, а затем поставить на react-native-maps
.Что мне не хватает?Моя карта работает нормально, просто не могу получить какие-либо возвращенные записи для координат из БД.
Кажется довольно распространенной проблемой, просто пытаясь перебрать возвращенные записи / объекты
Struct.js
import Utils from '../../helpers/utils'; //GUID gen only
class Struct {
constructor(name, lat, long, country) {
this.id = Utils.guid();
this.name = name;
this.lat = lat;
this.long = long;
this.country = country;
}
}
module.exports = Struct;
dbService.js
import Realm from 'realm';
import Struct from '../schema/Struct';
let repository = new Realm({
schema: [{
name: 'Struct',
primaryKey: 'id',
properties: {
id: {type: 'string', indexed: true},
name: 'string',
lat: 'string',
long : 'string',
country : 'string',
}
}],
schemaVersion: 1 //<--- needed to add this for any schema change, otherwise migration error occurs.
});
let dbService = {
getAll: function() {
//return repository.objects('Struct');
return repository.objects('Struct').filtered('country="UK"');
},
countAll: function() {
return repository.objects('Struct').length;
},
save: function(Struct) {
//if one already exists in country, dont add it.
if (repository.objects('Struct').filtered("country = '" + Struct.country + "'").length) return; //if record exists, exit
repository.write(() => {
//Struct.updatedAt = new Date();
repository.create('Struct', Struct);
})
},
};
dbService.save(new Struct('Object 1','xx.xxxxx','xxx.xxxxx','UK'));
dbService.save(new Struct('Object 2','xx.xxxxx','xxx.xxxxx','FR'));
dbService.save(new Struct('Object 3','xx.xxxxx','xxx.xxxxx','DE'));
dbService.save(new Struct('Object 4','xx.xxxxx','xxx.xxxxx','NL'));
dbService.save(new Struct('Object 5','xx.xxxxx','xxx.xxxxx','ES'));
module.exports = dbService ;
Главное приложение
var db = require('./db/db/dbService');
let recCount = db.countAll();
console.log(recCount); //<---- This works correctly
let recs = db.getAll();
for (let rec of recs) {
console.log(rec); //<----- Never runs
}
console.log()
возврата от db.getAll()
- это объект, но не в ожидаемом формате, и, похоже, Realm Helper, а не список отфильтрованных объектов, как ожидалось:
Proxy {Symbol(realm): 162, Symbol(id): 177, …}
[[Handler]]: Object
[[Target]]: Results
[[IsRevoked]]: false
Большое спасибо
РЕДАКТИРОВАТЬ
На самом деле .. Я лгу.Функция countAll()
возвращала 5 записей, и, комментируя строки dbService.save()
до 1, она по-прежнему возвращает 5. Так что что-то здесь не так.