将数组存储在react-native域中

时间:2016-07-01 07:23:06

标签: javascript react-native realm

我似乎无法将数组从json存储到我的realm数据库。 让我们说回到我身边的json是:

  contact: 
      { 
          name: 'Test Name',
          contactDetails: [ '4354354', '099324' ] 
      },

如何将contactDetails插入领域?

我已尝试根据此How to store [String] or [Int] in react-native realm创建一个这样的自定义对象:

class stringObject extends Realm.Object {}
    stringObject.schema = {
     name: 'stringObject',
      properties: { value : 'string' }
     };

并尝试将其添加到架构中:

  contactDetails: {type: 'list', objectType: 'stringObject'}

但它无法插入领域。我尝试清空stringObject的属性值,但它仍然无效。

2 个答案:

答案 0 :(得分:5)

Realm中的列表包含对象,因此您需要在插入之前将JSON转换为正确的形式。对于您提供的架构,您需要在调用contactDetails之前转换StringObject以表示有效realm.create对象的数组:

contactDetails: [ '4354354', '099324' ] 

contactDetails: [ { value: '4354354' }, { value: '099324' } ] 

您可以使用Array.map执行此操作,例如:

json.contactDetails = json.contactDetails.map( s => { value: s } );

答案 1 :(得分:4)

在架构的属性中:

contactDetails: { type: 'string?[]' },