Realm JS 使用原始数据类型列表创建对象

Realm JS Create objects with primitive data type list

我无法创建仅包含字符串对象的列表

这是我的模型的样子

class ProductSummary extends Realm.Object {}
ProductSummary.schema = {
name: 'ProductSummary',
properties: {
productId:'string',
name:'string',
description:'string',
rating:'int',
comments:'int',
categories:{type:'list',objectType:'string'},
images:{type:'list',objectType:'string'},
price:{type:'Price'}
 }
};

这就是我从 api

得到的回应
"productSummary": { "links": [], "productId": "PRD_1ola611nd0t", "name": "Sample", "description": "<p>Sample<br></p>", "categories": [ "CAT_1rua60fnd0u" ], "rating": 0, "comments": 0, "tags": [], "image": "http://test.testsite.com/testProject/app-images/189_66164247/189_42527954.jpeg", "price": { "lowest": 100, "highest": 100 } }

我收到以下错误

Target Type 'string' doesn't Exists for property 'categories'

我是不是以错误的方式创建了类别字段。

这是 realm js 对 react native 的限制,解决方法是在执行数据库事务之前将字符串列表包装为对象列表(作为键值对),更多信息和问题状态在此 github issue

中被跟踪

现在我们可以创建一个仅包含字符串对象或任何原始值类型的列表。

例如

class VarietyModel {}

VarietyModel.schema = {
  name: 'Variety',
  primaryKey: 'varietyId',
  properties: {
    varietyId: 'int',
    varietyName: 'string',
    products: { type: 'string?[]', default: [] }, // products will array of strings ['product1','product2'..]
  },
};
export default VarietyModel;

参考:

Realm Types

Realm List Properties