React native 如何使用react native将对象数组插入域数据库?
我有一个领域数据库模型,如下所示:React native 如何使用react native将对象数组插入域数据库?,react-native,realm,React Native,Realm,我有一个领域数据库模型,如下所示: export const JourneyStateSchema = { name : JOURNEY_STATE_SCHEMA, primaryKey: 'lvlNumber', properties: { lvlNumber: {type : 'int'}, stateWords: {type : 'data'}, words: {type : 'data'},
export const JourneyStateSchema = {
name : JOURNEY_STATE_SCHEMA,
primaryKey: 'lvlNumber',
properties: {
lvlNumber: {type : 'int'},
stateWords: {type : 'data'},
words: {type : 'data'},
answers: {type : 'data'},
hints: {type : 'data?'},
}
};
当我想插入其中时,会出现以下错误:
JourneySchema.stateWords的类型必须为“binary”,并具有“object”
我需要在其中插入对象数组,如何管理它
我的插入模型如下所示:
let model = {
lvlNumber : this.lvlNumber,
stateWords : this.state.words,//==>Array of objects
words : this.words,//==>Array of objects
answers : this.answers,//==>Array of objects
hints : this.hints//==>Array of objects
}
insertToJourney(model).then(()=>{
console.log(`inserted ${model} in db`)
}).catch((err)=>{
console.log(err)
})
下面是我的“stateWords”数据示例:
stateWords = [
{"value": "china", "solution": "26|36|46|56|66" , "letters" : [
{"letter" : "c" , "find" : false},
{"letter" : "h" , "find" : false},
{"letter" : "i" , "find" : false},
{"letter" : "n" , "find" : false},
{"letter" : "a" , "find" : false},
]},
{"value": "germany", "solution": "23|33|43|53|63|73|83" , "letters" : [
{"letter" : "g" , "find" : false},
{"letter" : "e" , "find" : false},
{"letter" : "r" , "find" : false},
{"letter" : "m" , "find" : false},
{"letter" : "a" , "find" : false},
{"letter" : "n" , "find" : false},
{"letter" : "y" , "find" : false},
]},
{"value": "france", "solution": "35|45|55|65|75|85" , "letters" : [
{"letter" : "f" , "find" : false},
{"letter" : "r" , "find" : false},
{"letter" : "a" , "find" : false},
{"letter" : "n" , "find" : false},
{"letter" : "c" , "find" : false},
{"letter" : "e" , "find" : false},
]}
]
以下是我的InsertToTravely函数:
export const insertToJourney = (item) => new Promise((resolve, reject) => {
Realm.open(databaseOptions).then(realm => {
realm.write(()=>{
realm.create(JOURNEY_STATE_SCHEMA, item);
resolve(item);
})
}).catch((error) => reject(error));
});
Hii,你找到解决方案了吗?不幸的是,没有,但我做了一个技巧,首先我用JSON.stringfy将数组转换为文本并保存在数据库中,然后当我从db中获取数据时,我再次用JSON.parse将其转换为数组。这对我有用,因为我有少量的数据。不幸的是,我不能那样做。我的应用程序是高度数据驱动的。但如中所述,这是通过循环整个数组插入领域的唯一方法吗?。