gpt4 book ai didi

react-native - React Native Realm Model 来存储对象数组?

转载 作者:行者123 更新时间:2023-12-04 13:03:31 25 4
gpt4 key购买 nike

假设我想将这样的对象存储到 Realm 数据库

Record 1
{name:'John',attributes:{hairColor:'black',birthDate:'1990-10-01'}}

Record 2
{name:'Sara',attributes:{gender:'female',allergies:['peanuts','cocaine']}}

所以我为我的 react-native 项目做了这样的事情
import Realm from 'realm';

class ProductCategory {}
Person.schema = {
name: 'Person',
properties: {
name: {type: 'string'},
attributes: {type: 'list',objectType:'json'},
}
};

Realm.open({schema: [Person]});

在我的 react-native 应用程序中运行此代码会给出错误消息:

Warning encountered 1 time. Possible Unhandled Promise Rejection (id:0): Error: Schema validation failed due to the following errors: - Property 'Person.attributes'of type 'array' has unknown object type 'json'



如何将属性定义为数组?

最佳答案

我从问题中了解到的:

您想保存人员及其相应属性的记录;所以当你查询时,比如说,John,你以后可以做 john.attributes.hairColor并获得 black
我不明白的是为什么attributestype: 'list'当它似乎是一个对象时。 (也许你的意思是它是一个对象数组?)与 allergies 对比这显然是一个数组。

我将如何创建架构 (我现在无法运行代码,所以请验证并让我知道它是否有效):

class Attributes {}
Attributes.schema = {
name: "Attributes",
properties: {
hairColor: "string?", // ? = optional
birthDate: "date?",
gender: "string?",
allergies: "string?[]", // [] = list or array
}
}

class Person {}
Person.schema = {
name: "person",
properties: {
name: "string",
attributes: "Attributes", // Nested schema
}
}

在评论中,您提到您想创建另一个属性 lotteryNumbers这是一个数字数组。我会在 Person.schema.properties 里面像这样实现它——
properties: {
...
lotteryNumbers: "int[]" // Array of integers
}

如果我犯了任何错误,请告诉我;我也在学习,这就是我到达这里的方式:p

关于react-native - React Native Realm Model 来存储对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46636101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com