首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React Native with Reactotron中RealmDB对象的问题

React Native with Reactotron中RealmDB对象的问题
EN

Stack Overflow用户
提问于 2021-02-10 08:41:20
回答 1查看 143关注 0票数 1

我在使用React Native项目中的RealmDB对象时遇到了问题,在reactotron中,我执行的每个查询都会返回空对象的数组{},如果我尝试使用rest/spread运算符。然而,当我按属性访问属性时,它就起作用了。有人遇到了同样的问题并设法解决了?附言:我已经在项目中链接了realm和reactotron

关于我所描述的图像

Reactotron:https://i.stack.imgur.com/OhN1D.png代码:https://i.stack.imgur.com/gsNwk.png

下面是我尝试发现问题的一段代码示例:

代码语言:javascript
复制
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);
    }
} 
EN

回答 1

Stack Overflow用户

发布于 2021-06-01 01:39:49

这解决了我的问题,我希望这也能帮助你:

代码语言:javascript
复制
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对象,因此您必须在使用之前克隆它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66129327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档