Извлечение данных списка Firebase для создания динамической таблицы

У вас не может быть указатель с двойными ключами для определения! Установлено, что вы можете использовать один ключ и, как значение, список элементов, имеющих этот ключ.

Итак, вы можете выполнить следующие шаги:

  1. Посмотрите, (вашего начального набора) в окончательный dict. Если это так, перейдите к шагу 3
  2. Обновить dict с помощью клавиши
  3. Добавить к dict [key] в списке новое значение
  4. Повторить [1-3]
0
задан Dev 17 March 2019 в 21:18
поделиться

1 ответ

Вы получаете эту ошибку из-за следующего кода:

snapshot.forEach(function(childSnapshot) {

this.columns.push( { columnDef: childSnapshot.heroname, header:  childSnapshot.herotitle,    cell: (element: any) => `${element.heroname}` });
this.displayedColumns = this.columns.map(c => c.columnDef);

return false;
});

Здесь forEach принимает функцию обратного вызова в качестве первого параметра, а this внутри обратного вызова находится в другом контексте и, следовательно, Вы получаете эту ошибку.

Чтобы решить эту проблему, вам нужно использовать функцию стрелки :

Функция стрелки не имеет своей собственной this. Используется значение this лексической области видимости; Функции стрелок следуют нормальным правилам поиска переменных. Таким образом, при поиске this, который отсутствует в текущей области видимости, они в конечном итоге находят this из включенной области видимости.

По сути, это означает, что this внутри функции стрелки будет ссылаться на this, в котором была определена функция стрелки, поэтому вы сможете сделать следующее:

snaphot.forEach((childSnapshot)=>{

this.columns.push( { columnDef: childSnapshot.heroname, header: childSnapshot.herotitle,    cell: (element: any) => `${element.heroname}` })
this.displayedColumns = this.columns.map(c => c.columnDef);

return false;
});
0
ответ дан Peter Haddad 17 March 2019 в 21:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: