Helpex - Trao đổi & giúp đỡ Đăng nhập
2

Chào mọi người

Tôi đang cố gắng chèn đối tượng lồng nhau của mình vào Realm với phương thức To-One Relationships , nhưng tôi nhận được một kết quả không mong muốn trong đó tất cả giá trị của đối tượng lồng nhau của tôi giống với giá trị từ đối tượng lồng nhau đầu tiên của tôi đã được Mối quan hệ

Đây là giản đồ của tôi trông giống như

const PhotoSchema = {
  name: 'CUSTOMER_PHOTOS',
  properties: {
    base64: 'string'
  }
};

const TimeSchema = {
  name: 'CUSTOMER_TIMES',
  properties: {
    warranty: 'float',
    finish: 'float'
  }
};

const MainSchema = {
  name: 'CUSTOMERS',
  primaryKey: 'id',
  properties: {
    id: 'int',
    name: 'string',
    photo: {type: 'CUSTOMER_PHOTOS'},
    time: {type: 'CUSTOMER_TIMES'},
  }
};

Và cố gắng chèn một số dữ liệu như thế này

import Realm from 'realm';

Realm.open({
  path: 'mydb.realm',
  schema: [PhotoSchema, TimeSchema, MainSchema]
})
.then((realm) => {

  realm.write(() => {
    realm.create('CUSTOMERS', {
      id: Date.now(),
      name: 'John',
      photo: {
        base64: 'ImageBase64'
      },
      time: {
        warranty: 31,
        finish: 7
      }
    })
  })

})
.catch((error) => {
  console.error(error)
});

Quá trình chèn dữ liệu thành công NHƯNG tôi nhận được kết quả không mong đợi khi lấy thành công dữ liệu đó từ Realm

Kết quả không mong muốn trong console.log ()

{
  id: 1601335000882,
  name: "John",
  photo: {
    base64: "ImageBase64"
  },
  // This value is the same as PhotoSchema
  time: {
    base64: "ImageBase64"
  }
}

Tôi muốn kết quả thực tế như thế này

{
  id: 1601335000882,
  name: "John",
  photo: {
    base64: "ImageBase64"
  },
  time: {
    warranty: 21
    finish: 7
  }
}

Tôi có bất cứ điều gì sai với mã của tôi? Các tài liệu không phải là quá chi tiết về phương pháp, giải thích và ví dụ này là giống như một từ

CẬP NHẬT:

Tôi chỉ nhận được một kết quả không mong muốn trong console.log()và nếu tôi cố gắng truy cập trực tiếp MY_DATA.time.warrantyvào thuộc tính thì kết quả là những gì tôi mong đợi

Câu trả lời là không

Phương pháp Mối quan hệ To-One không chỉ dành cho một Lược đồ, và Cảm ơn Angular San đã đưa ra một ví dụ về phương pháp Mối quan hệ nghịch đảo.

2 hữu ích 0 bình luận 693 xem chia sẻ
2

Thử các mối quan hệ nghịch đảo

Tôi đã nhận được một kết quả mong đợi với phương pháp Mối quan hệ nghịch đảo . Trong phương pháp này, bạn phải thêm một thuộc tính được kết nối với Lược đồ chính và tôi muốn gọi đây là thuộc combinertính

const PhotoSchema = {
  name: 'CUSTOMER_PHOTOS',
  properties: {
    base64: 'string',
    combiner: {type: 'linkingObjects', objectType: 'CUSTOMERS', property: 'photo'}
  }
};

const TimeSchema = {
  name: 'CUSTOMER_TIMES',
  properties: {
    warranty: 'float',
    finish: 'float',
    combiner: {type: 'linkingObjects', objectType: 'CUSTOMERS', property: 'time'}
  }
};

const MainSchema = {
  name: 'CUSTOMERS',
  primaryKey: 'id',
  properties: {
    id: 'int',
    name: 'string',
    photo: 'CUSTOMER_PHOTOS',
    time: 'CUSTOMER_TIMES',
  }
};
2 hữu ích 1 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ javascript reactjs react-native realm , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading