Как добавить объекты в массив, используя push? - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь передать несколько выбранных элементов в виде массива, но получаю сообщение об ошибке «Не удается прочитать свойство« push »из неопределенного» * ​​1001 *


payload: Array<any>;

runRequests() {
    const dialogRef = this.dialog.open(DashboardDialogComponent, {
      width: '280px', height: 'auto', data: { title: 'Run Now', details: 'Submit the request to run immediately' }
    });
    dialogRef.afterClosed().subscribe(result => {
      if (result) {
        this.selection.selected.forEach(element => {
          const request = { 'reqId': element.reqId, 'runAt': this.datePipe.transform(new Date(), "yyyy-MM-dd'T'H:mm:ssZZZ") };
          this.payload.push(request); //I am getting error in this line, 
        });
        this.store.dispatch(new requestDashboardActions.RunNow(this.payload));
      }
    });
  }

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Вам необходимо присвоить начальное значение

 payload: Array<any> = []

, если вы не назначите JS, будет неявно назначать ему значение undefined, а undefined не будет иметь метод push.

0 голосов
/ 04 февраля 2019

Вам необходимо инициализировать свойство:

payload: Array<any> = []

Если вы проверите файл транспонированного JavaScript, не будет свойства с именем payload, если вы не инициализируете его с пустым массивом []

площадка для машинописи

Обновление:

Я предположил, что это свойство класса.Если это просто локальная переменная, просто удалите ключевое слово this.

payload.push(request)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...