Object.entries, Невозможно преобразовать неопределенный или нулевой объект в Function.entries (<anonymous>) - PullRequest
0 голосов
/ 31 октября 2019

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

 LABELS = ['Registratie', 'Vcheq', 'Doelen', 'QrCode', 'Inlog', 'Chat', 'Indicatoren', 'Metingen'];

OPTIONS: {

    showDatePickerOne: [1, 1, 1, 1, 0, 0, 1, 1];

 };

и функция выглядит так:

 setSelectedSearchOptions(optionLabel: string) {
    this.filterSection.reset();
    this.selectedSearch = optionLabel;
    this.selectedOption = optionLabel;


    const index = this.LABELS.indexOf(optionLabel);

    console.log(this.showDatePickerOne);

    for (let [k, v] of Object.entries(this.OPTIONS)) {

      this[k] = v[index];
    }
  }

, а компонент с переключателями выглядит так:

  <mat-radio-group>
          <mat-radio-button
            *ngFor="let option of this.filterListData.searchOptions; let i = index"
            [value]="i"
            [checked]="i === 0"
            [(value)]="option"
            (change)="this.setSelectedSearchOptions(option.label)"
          >
            {{ option.label }}
          </mat-radio-button>
        </mat-radio-group>

Но когда я выбираю переключатель, я получаю эту ошибку:

ng:///ParticipantModule/ExtendedSearchComponent.ngfactory.js:1260 ERROR TypeError: Cannot convert undefined or null to object
    at Function.entries (<anonymous>)
    at ExtendedSearchComponent.push../src/app/participant/models/filter-selected-search-options.ts.FilterSelectedSearchOptions.setSelectedSearchOptions (:4201/participant-participant-module.js:741)
    at Object.eval [as handleEvent] (ng:///ParticipantModule/ExtendedSearchComponent.ngfactory.js:20)
    at handleEvent (vendor.js:83313)
    at callWithDebugContext (vendor.js:84407)
    at Object.debugHandleEvent [as handleEvent] (vendor.js:84110)
    at dispatchEvent (vendor.js:80762)
    at vendor.js:82252
    at SafeSubscriber.schedulerFn [as _next] (vendor.js:73935)

в этой строке:

   for (let [k, v] of Object.entries(this.OPTIONS)) {

Поэтому мой вопрос: как это исправить?

Спасибо

1 Ответ

0 голосов
/ 31 октября 2019

Вы неправильно определили переменную OPTIONS. вот почему вы видите сообщение об ошибке undefined or null, в котором говорится, что ваша переменная не была определена или имеет нулевое значение, в вашем случае это undefined.

Если внутри класса, правильный способопределите вашу OPTIONS переменную следующим образом

OPTIONS = { showDatePickerOne: [1, 1, 1, 1, 0, 0, 1, 1]; };

в противном случае

var OPTIONS = { showDatePickerOne: [1, 1, 1, 1, 0, 0, 1, 1]; };

если вы используете синтаксис ES6, вы можете заменить var с let или const

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