1

ネストされたリストが多数あるモデルがあります (例は以下になります)。これらのネストされたリストに書き込む方法を理解するのに問題があります。

const examSchema = {
  name: 'Exams',
  properties: {
    Exams: { type: 'list', objectType: 'ExamList' },
  },
};

const examList = {
  name: 'ExamList',
  properties: {
    creationDateTime: 'date',
    SITE: 'string',
    examCodeList: { type: 'list', objectType: 'ExamCodeList' },
  },
};

const examCodeList = {
  name: 'ExamCodeList',
  properties: {
    EXAMCODE: 'string',
    DESCRIPTION: 'string',
    SUBEXAMS: { type: 'list', objectType: 'SubExamCodeList' },
  },
};

const subExamCodeList = {
  name: 'SubExamCodeList',
  properties: {
    DESCRIPTION: 'string',
    EXAMCODE: 'string',
    SUBSUBEXAM: { type: 'list', objectType: 'SubSubExamCodeList' },
  },
};

const subSubExamCodeList = {
  name: 'SubSubExamCodeList',
  properties: {
    DESCRIPTION: 'string',
    EXAMCODE: 'string',
  },
};

スキーマは、次の JSON スキーマと一致する必要があります。

"Exams": [{
    "creationDateTime": "2017-01-24T09:29:51-05:00",
    "SITE": "SCH",
    "examCodeList": [{
      "EXAMCODE": "VEHICLE",
      "DESCRIPTION": "GE Vehicle Failures",
      "SUBEXAM": [{
        "DESCRIPTION": "WILL NOT START",
        "EXAMCODE": "NOSTART",
        "SUBSUBEXAM": [{
          "DESCRIPTION": "FEEDER/SUPPLY FAULT",
          "EXAMCODE": "FEEDER"
        },{
          "DESCRIPTION": "LOCAL SWITCH FAILURE",
          "EXAMCODE": "LOCSWTC"
        },{
          "DESCRIPTION": "INHIBIT BY LOGIC CIRCUIT",
          "EXAMCODE": "INHIBIT"
        }]
      }]
    }]
  }]

次に、作成した書き込み関数は次のようになります。

let test;
realm.write(() => {
  test = realm.create('Exams', {});
});

test.Exams.push({
  creationDateTime: new date(2017, 01, 20),
  SITE: 'SCH1',
});

test.Exams.examCodeList.push({
  EXAMCODE: 'example',
  DESCRIPTION: 'example',
});

test.Exams.examCodeList.SUBEXAMS.push({
  DESCRIPTION: 'example',
  EXAMCODE: 'example',
});

test.Exams.examCodeList.SUBEXAMS.SUBSUBEXAM.push({
  DESCRIPTION: 'example',
  EXAMCODE: 'example',
});

これを行うためのより良い方法が必要であることは知っていますが、ネストされたリストスキーマへの書き込み方法についてオンラインで何も見つけていません。助けてくれてありがとう!

4

0 に答える 0