Object.values объекта realmjs возвращает пустой массив
Описание
Я пытаюсь преобразовать мой объект области в массив, как можно увидеть ниже в методе 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 не может возвращать массив значений?
2 ответа
В настоящее время не уверены, почему Object.values()
не работает. Я пошел дальше и использовал эту альтернативу, которая, согласно некоторым сообщениям, может вызвать проблемы с производительностью.
Array.from(this.symptoms);
Для меня это произошло из-за несовместимости типов данных, доступных в Атласе. например, поле даты в схеме имело тип «Дата», но некоторые значения в коллекции имели тип «строка». Наличие согласованных типов данных решило для меня проблему.