【问题标题】:Realm React Native - How to assign object property typesRealm React Native - 如何分配对象属性类型
【发布时间】:2016-12-29 00:30:40
【问题描述】:

我有 2 个领域数据模型。 'Foods' 模型有一个对象属性类型 'foodRating',它旨在作为 FoodsRatings 模型的链接。

class FoodRatings extends Realm.Object {}
FoodRatings.schema = {
  name: 'FoodRatings',
  primaryKey: 'foodRatingId',
  properties: {
    foodRatingId: { type: 'int', indexed: true },
    name: 'string',
  }
}; 


class Foods extends Realm.Object {}
Foods.schema = {
  name: 'Foods',
  primaryKey: 'foodId',
  properties: {
    foodId: { type: 'int', indexed: true },
    name: 'string',
    foodRating: {type: 'FoodRatings'},
  }
}; 

FoodRatings 预先填充了许多旨在保持静态且不变的行。您可以从 FoodRatings 中的选项之一为食物分配 foodRating。

我遇到的问题是,当我尝试创建一个新的 Foods 对象并将“foodRating”属性分配给 FoodRatings 对象时,它会中断。

foodRatings = realm.objects('FoodRatings')
let foodRating = foodRatings.filtered('foodRatingId = 1');
realm.write(() => {
   realm.create('Foods', {foodId: 1, name: 'apples', foodRating: foodRating[0]});
})

我看到很多关于 Realm 的“链接”的讨论,但它尚未针对 Realm js 发布。所有示例和文档都假定新条目而不是您尝试分配给模型的现有对象。

知道我该怎么做吗?

【问题讨论】:

    标签: react-native realm


    【解决方案1】:

    首先声明 - 我正在使用 Realm Swift,但从未使用过 Realm React Native。

    话虽如此,从文档来看,您对 foodRating 的定义似乎是错误的。我会通过它应该像例子

    cars:    {type: 'list', objectType: 'Car'}
    

    即。

    foodRating: {type: 'list', objectType: 'FoodRatings'}
    

    “链接”存在于 Realm Swift 中,但在您的情况下,可能会用于从食品评级链接回具有该评级的所有食品。所以我认为它解决了一个不同的问题。

    【讨论】:

      【解决方案2】:

      你到底看到了什么错误?

      你的例子对我有用

      realm.write(() => {
        realm.create('FoodRatings', {foodRatingId: 10, name: '1 star'});
        realm.create('FoodRatings', {foodRatingId: 20, name: '2 star'});
        realm.create('FoodRatings', {foodRatingId: 30, name: '3 star'});
      });
      
      let foodRatings = realm.objects('FoodRatings');
      foodRating = foodRatings.filtered('foodRatingId = 10');
      realm.write(() => {
         realm.create('Foods', {foodId: 1, name: 'apples', foodRating: foodRating[0]});
      });
      
      let foods = realm.objects('Foods');
      console.log("foods[0]= " + foods[0].name );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-05-22
        • 2020-06-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-21
        • 2022-01-10
        相关资源
        最近更新 更多