Fehler beim Verschieben von Funktionsblöcken

Hallo,

ich nutze Firefox 114.0.1 unter Linux.

Wenn ich einen Geräteblock erstelle und ihn verschiebe, sieht es optisch zwar chaotisch aus, aber es funktioniert, wenn ich auf Speichern klicke.


Ich habe Block 1 erstellt.
Ich habe ihn auf Block 2 verschoben.
und das ist das Ergebnis:

Der Name des Blocks ist in Ordnung, aber sein Inhalt hat den des Zielblocks (oder zumindest den eines anderen Blocks) kopiert.

Ich hatte auch einen ähnlichen Konflikt, sogar mit einer Zusammenführung der beiden Blöcke, aber ohne zu speichern, glaube ich auf dem Telefon.
Ich habe es dann am PC (Chrome) noch einmal versucht und es hat funktioniert.

Danke für die Rückmeldung @Hizo :slight_smile:

@Lokkye ich weiß nicht, ob du diesen Bug gesehen hast. Offenbar unterstützt das neue Widget „Geräte“ dieses Verhalten nicht, man müsste prüfen, ob die Funktion „componentWillReceiveProps“ vorhanden und funktionsfähig ist

Ich habe ein Github-Issue erstellt:

Ah, ich schaue mir das schnell an

Tut mir leid, aber ich kann es bei mir zu Hause weder in Chrome noch in Firefox reproduzieren :frowning:

@Lokkye hast du es versucht, indem du eine App-Gerätebox auf eine andere verschoben hast? Ich glaube, es ist nur der « React-Select »-Teil, der springt

@pierre-gilles: Ja, ich habe viele Dinge versucht, eine Box über eine andere, darunter, darüber, in einer anderen Spalte. Ich sehe kein Problem auf meiner Seite :frowning:

Ich habe gerade nochmal Tests durchgeführt, das passiert mir auch mit dem Block „Geräte im Raum“.

et übrigens, wenn ich den Block in derselben Spalte nach oben verschieben möchte, gibt es keine visuelle Änderung, auch wenn es nach dem Speichern in Ordnung ist.

et wenn ich den Block in eine andere Spalte verschiebe, ändert sich sein Inhalt nur visuell (nur visuell)…

Das Gleiche passiert mir mit Opera v100.0.4815.20.

Der Fehler tritt bei mir zu 100% auf:

  1. Ich ziehe ein „Geräte“-Widget auf ein anderes „Geräte“-Widget (unterschiedlicher Titel und unterschiedliche ausgewählte Geräte)

  2. Das Quell-Widget verschwindet (in der Anzeige) bei den ausgewählten Geräten:

@pierre-gilles also, ich habe gerade verstanden, dass ich das Problem lokal (Entwicklungsumgebung) nicht habe. Aber auf meiner entfernten Instanz habe ich das Problem schon :frowning: . Ich schaue, woher das kommen könnte.

@pierre-gilles: Na gut, du hattest recht mit der Funktion « componentWillReceiveProps »
Der PR mit dem Fix:

@Lokkye deine Lösung ist ein bisschen brutal :stuck_out_tongue: das macht einen API-Aufruf für jede kleine Änderung der Props, selbst wenn es nur eine einfache Änderung von Zeichen im Titel ist.

Kannst du einen Test hinzufügen, um nur bei Bedarf zu aktualisieren?

@pierre-gilles: Mein Fehler :frowning: Es stimmt, das war ein bisschen hart. Ich habe die Änderung entsprechend vorgenommen.

Besser, aber das Problem bleibt gleich!

Mach den Test, füge ein console.log in den componentWillReceiveProps ein und ändere zum Beispiel den Namen des Widgets. Du wirst sehen, dass die Funktion bei jedem getippten Zeichen aufgerufen wird, was die Funktion „refreshSelectedOptions“ bei jedem Buchstaben aufrufen wird.

Man muss eine if-Bedingung in den componentWillReceiveProps einfügen, um die Auswahl nur dann zu aktualisieren, wenn sich die Auswahl ändert :slight_smile:

@pierre-gilles: Ich habe den passenden Test hinzugefügt :slight_smile:

@Lokkye Bist du dir sicher? Ich sehe nichts Weiteres im PR

Der Sinn des Tests ist, die Tabelle nur in den States neu zu erstellen, wenn sich die als Props übergebene Tabelle geändert hat

@pierre-gilles : Ja :frowning: Ich hatte vergessen zu pushen :frowning:
Normalerweise solltest du die Änderungen jetzt sehen.

Danke! Ich habe dir gerade eine Review gemacht, entschuldige, etwas spät, ich habe im Moment viel zu tun.

Der Check wird nicht funktionieren, wenn du ein Widget löschst und das danebenliegende Widget genau die gleiche Anzahl an deviceFeatures hat, dann wird die Liste nicht aktualisiert (wir kommen zum ursprünglichen Bug zurück):