我在使用React Native项目中的RealmDB对象时遇到了问题,在reactotron中,我执行的每个查询都会返回空对象的数组{},如果我尝试使用rest/spread运算符。然而,当我按属性访问属性时,它就起作用了。有人遇到了同样的问题并设法解决了?附言:我已经在项目中链接了realm和reactotron
关于我所描述的图像
Reactotron:https://i.stack.imgur.com/OhN1D.png代码:https://i.stack.imgur.com/gsNwk.png
下面是我尝试发现问题的一段代码示例:
async getAllMov(){
try{
const realm = await getRealm();
const listaMov = realm.objects(MovSchema.schema.name);
console.tron.log(listaMov[4]);
const d = {...listaMov[4]};
console.tron.log(d);
let dados = {
movID: listaMov[4].movID,
titulo: listaMov[4].titulo,
descricao: listaMov[4].descricao,
valor: listaMov[4].valor,
tipo: listaMov[4].tipo
};
console.tron.log(dados);
}catch(e){
console.tron.log(e.message);
}
} 发布于 2021-06-01 01:39:49
这解决了我的问题,我希望这也能帮助你:
export default function getRealmObjects = async (schemaName) => {
const realm = await getRealm();
var objects = realm.objects(schemaName);
//this is because realm put some obstacles when you try to modify it's objects, the solution found was to clone the results before return
let result = [];
for (let i = 0; i < objects.length; i++) {
let item = {};
for (const key in objects[i]) {
item[key] = objects[i][key];
}
result.push(item)
}
return result?.length > 0 ? result : [];
}基本上,您不能修改realm对象,因此您必须在使用之前克隆它。
https://stackoverflow.com/questions/66129327
复制相似问题