Material-ui: onloadwff.js:71 Assertion fehlgeschlagen: Eingabeargument ist kein HTMLInputElement

Erstellt am 12. März 2019  ·  12Kommentare  ·  Quelle: mui-org/material-ui

  • [x] Dies ist kein v0.x-Problem.
  • [x] Ich habe die Ausgaben dieses Repositorys durchsucht und glaube, dass dies kein Duplikat ist.

Erwartetes Verhalten 🤔

Es sollten keine Konsolenfehler auftreten, wenn TextField mit multiline={true}

Aktuelles Verhalten 😯

Beim Rendern eines multiline TextField (innerhalb eines form ) und Drücken der enter Taste wird Folgendes in der Konsole protokolliert (jedes Mal wenn die Taste gedrückt wird ):

onloadwff.js:71 Assertion failed: Input argument is not an HTMLInputElement
  getFormProfile @ onloadwff.js:71
  setFieldValue @ onloadwff.js:71
  formKeydownListener @ onloadwff.js:71

onloadwff.js:71 Uncaught TypeError: Cannot read property 'type' of undefined
    at e.setFieldValue (onloadwff.js:71)
    at HTMLFormElement.formKeydownListener (onloadwff.js:71)

Schritte zur Reproduktion 🕹

  1. Navigieren Sie zu https://material-ui.com/demos/text-fields/ und öffnen Sie die Dev Console von Chrome (
  2. Klicken Sie im Abschnitt "TextField" auf ein beliebiges mehrzeiliges Steuerelement und drücken Sie ein paar Mal die Eingabetaste
  3. Beachten Sie die in der Konsole protokollierten Ausnahmen

Ich konnte diesen Fehler in Chrome reproduzieren (sowohl Ubuntu 18 als auch Windows 10).
Konnte es in Firefox (Ubuntu und Windows) nicht reproduzieren.

Ich habe das gleiche Problem in meinem Projekt und habe festgestellt, dass es auch auf der Webseite von Material-U vorhanden ist.

Beachten Sie, dass der Fehler nicht angezeigt wird, wenn das mehrzeilige Textfeld nicht in ein Formular-Tag eingeschlossen ist

Kontext

Nicht viel Kontext hier, nur ein mehrzeiliges Textfeld gerendert und diese Ausnahmen in der Konsole protokolliert.

Deine Umgebung 🌎

| Technik | Version |
|-------------|---------|
| Material-UI | v3.0.1 und v.3.9.2 |
| Reagieren | 16.6.3 |
| Browser | Chrome, Firefox (beide aktuell) |
| TypeScript | nein |
| usw. | - |

TextField external dependency

Hilfreichster Kommentar

Wer verwendet LastPass? Hebe deine Hand! ( onloadwff.js )

Alle 12 Kommentare

Wer verwendet LastPass? Hebe deine Hand! ( onloadwff.js )

@npapagna Es ist eine aktuelle LastPass-Regression. Ich bezweifle stark, dass wir diese Art von Problem so lange unbehandelt gehabt haben könnten. Sie können es mit einem nativen <textarea /> versuchen, dieselbe Reproduktion.

Capture d’écran 2019-03-12 à 23 52 33

@oliviertassinari hat es geschafft!

Vielen Dank an alle, die sich die Zeit genommen haben, sich das anzuschauen! 👏

Cool! Aber wie kann man es loswerden und gleichzeitig die Erweiterung behalten?

Cool! Aber wie kann man es loswerden und gleichzeitig die Erweiterung behalten?

Dafür gibt es keine offizielle Lösung, trotzdem ist eine mögliche Problemumgehung die folgende:

  1. Klicken Sie mit der rechten Maustaste auf die LastPass-Erweiterung
  2. Wählen Sie "Dies kann Site-Daten lesen und ändern".
  3. Wählen Sie dann "Wenn Sie auf die Erweiterung klicken".

Laden Sie die Seite neu, Sie werden sehen, dass der Fehler verschwindet.

Mit freundlichen Grüßen.

@sfanculatodinotte Danke!

Cool! Aber wie kann man es loswerden und gleichzeitig die Erweiterung behalten?

Hallo!

Sie können die URL auch wie folgt ausschließen:

  1. Gehen Sie zu LastPass und verbinden Sie sich mit Ihrem Konto
  2. Gehen Sie in den Abschnitt Account parameters
  3. Navigieren Sie zum Tab URL Exclusions
  4. Fügen Sie einen Ausschluss für Ihre Seite hinzu, z. B. http://localhost

Hoffe das hilft!

Viele Grüße :entspannt:

Wer verwendet LastPass? Hebe deine Hand! (_onloadwff.js_)

:D, die beste Antwort für mich, vielen Dank :)))

Nun, es ist schön, wenn Sie der Benutzer sind, deaktivieren Sie einfach Lastpass, aber wir sind hier alle Entwickler, oder? Was können wir also tun, um zu verhindern, dass unsere Formulare für unsere Benutzer beschädigt werden, die LastPass verwenden (und die dieses Github-Problem nie finden werden)?

Um es klar zu sagen, dieser Fehler unterbricht nichts auf der Seite, es ist Lärm für Entwickler. Wenn Sie das Problem beheben möchten, wenden Sie sich an den LastPass-Support. Je mehr Anfragen, desto wahrscheinlicher wird es priorisiert.

Mein Fehler, ich hatte einen anderen seltsamen Fehler, der dazu führte, dass meine Eingabe fehlerhaft war, dieser Fehler ist in der Tat nur Rauschen.

<textarea class="form-control" id="messageBody"
            onkeypress={supressEnterPropagation}
            name="body"
            rows="18"
          ></textarea>
const supressEnterPropagation = (event) {
    if (event.which === 13 || event.keyCode === 13 || event.key === "Enter")
        event.stopPropagation()
     }
}

Du hast die Idee. Es ist der Sudo-Code

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

newoga picture newoga  ·  3Kommentare

chris-hinds picture chris-hinds  ·  3Kommentare

rbozan picture rbozan  ·  3Kommentare

ghost picture ghost  ·  3Kommentare

FranBran picture FranBran  ·  3Kommentare