Не удается прочитать свойства неопределенного (чтение «substr»)

#javascript #angular

Вопрос:

Привет, я пытаюсь получить подстроку из строки на основе некоторых вычислений, но получаю эту ошибку в консоли браузера:

         
        TypeError: Cannot read properties of undefined (reading 'substring')
           at MessageVariantCardInputComponent.onInput 
           at MessageVariantCardInputComponent_input_HostBindingHandler
        
 

при использовании приведенного ниже примера кода для получения значения подстроки «значение»

Код:

         
      
    @HostListener('input') onInput() {  
    this.triggerFound = false;
    this.triggerName = '';
    const native = this.element.nativeElement;
    console.log("=== native dropdown", native)
    const value = native.value;
    const currentPos = native.selectionStart - 1;
    
    for (const key of Object.keys(this.triggers)) {
        const trigger = this.triggers[key];
        const triggerLen = trigger.length;
        const extractedString = value.substr(currentPos - triggerLen   1, triggerLen);
        const found = extractedString === trigger;
        const isFirstTrigger = key === 'firstElement';
    
        if ((isFirstTrigger amp;amp; found amp;amp; currentPos === 0) || // allow first element trigger only when current pos is 0
            (!isFirstTrigger amp;amp; found)
          ) {
                this.triggerFound = true;
                this.triggerName = trigger;
                break;
            }
        }
    }

 

Комментарии:

1. Значит native , не определено…?

2. const extractedString = value ? value.substr(currentPos - triggerLen 1, triggerLen) : null

Ответ №1:

Что вы получаете на своей консоли.войдите

 console.log("=== native dropdown", native) ?