Object.values ​​для объекта realmjs возвращает пустой массив - PullRequest
0 голосов
/ 30 июня 2018

Описание

Я пытаюсь преобразовать мой объект области в массив, как показано ниже в методе history.

class RealmStore {

    @observable symptoms = {};
    @observable meals    = {};

    @computed get history(){
        return [...Object.values(this.symptoms), ...Object.values(this.meals)];
    }

    //More methods to populate this.symptoms and this.meals
}

Когда я регистрирую this.symptoms, я получаю следующий вывод в моем терминале:

{
  '0': {
    date: Fri Jun 29 2018 15: 56: 48 GMT + 0200(CEST),
    name: 'Regurgitation',
    value: 1
  },
  '1': {
    date: Fri Jun 29 2018 15: 58: 09 GMT + 0200(CEST),
    name: 'Belching',
    value: 1
  },
  '2': {
    date: Fri Jun 29 2018 16: 10: 39 GMT + 0200(CEST),
    name: 'Heartburn',
    value: 2
  },
  '3': {
    date: Fri Jun 29 2018 23: 30: 36 GMT + 0200(CEST),
    name: 'Heartburn',
    value: 1
  }
}

Когда я регистрируюсь Object.keys(this.symptoms), я получаю в своем терминале следующее:

[ '0', '1', '2', '3' ]

Когда я регистрируюсь Object.values(this.symptoms), я получаю в терминале следующее:

[]

Это единственный способ, которым это работает:

        const values = [];
        for(let prop in this.symptoms){
            if(this.symptoms.hasOwnProperty(prop)){
                values.push(this.symptoms[prop])
            }
        }
        console.log(values);

В моем терминале регистрируется следующее:

[{
    date: Fri Jun 29 2018 15: 56: 48 GMT + 0200(CEST),
    name: 'Regurgitation',
    value: 1
  },
  {
    date: Fri Jun 29 2018 15: 58: 09 GMT + 0200(CEST),
    name: 'Belching',
    value: 1
  },
  {
    date: Fri Jun 29 2018 16: 10: 39 GMT + 0200(CEST),
    name: 'Heartburn',
    value: 2
  },
  {
    date: Fri Jun 29 2018 23: 30: 36 GMT + 0200(CEST),
    name: 'Heartburn',
    value: 1
  }
]

Вопрос:

Что приводит к тому, что объект realmjs не может возвращать массив значений?

1 Ответ

0 голосов
/ 30 июня 2018

В настоящее время не уверены, почему Object.values() не работает. Я использовал эту альтернативу, которая, согласно некоторым сообщениям, может привести к проблемам с производительностью.

Array.from(this.symptoms);
...