Erwartet: Sobald ich den Button drücke, werden die Tags für das Thema auf my-tag gesetzt (funktioniert), was ein erneutes Rendern des Buttons auslöst und ihn deaktiviert.
Erwartet: Sobald ich den Tag manuell hinzufüge, wird der Button deaktiviert.
Realität: Das erneute Rendern wird in keinem der Szenarien ausgelöst.
Der Button wird beim Aktualisieren der Seite korrekt deaktiviert/aktiviert.
Eine berechnete Eigenschaft, die von topic.tags abhängt, führt dazu, dass sie ungültig wird, wenn das Array selbst ersetzt wird. Sie führt jedoch keine Ungültigkeit herbei, wenn Elemente zum Array hinzugefügt oder daraus entfernt werden.
Daher denke ich, dass Sie wahrscheinlich topic.tags.@each (docs) wünschen.
Im Allgemeinen versuchen wir, uns von berechneten Eigenschaften wegzubewegen und uns auf native Getter/Autotracking zuzubewenden. Ich schätze, wir werden die topic-footer-buttons API irgendwann modernisieren müssen, um das zu unterstützen
Die Verwendung von topic.tags.@each löst dies jedoch nicht… (entweder nicht, wenn das Tag manuell hinzugefügt wird, oder nicht, wenn der Button gedrückt wird).
Ein console.log in der disabled()-Funktion wird nicht ausgeführt. Es wird auch nicht in displayed() ausgeführt.
Ich habe auch versucht this.topic.notifyPropertyChange("tags");
und ich wurde sogar verzweifelt und habe versucht, andere Eigenschaften zu manipulieren (wie this.topic.title = this.topic.title + "!" und topic.title in dependentKeys einzuschließen). Das funktioniert auch nicht. Die Verwendung von this.topic.set... funktioniert ebenfalls nicht.
Mein „minimaler“ Code im OP ist im Moment mein „echter“ Code. Ich werde ihn auf eine komplett saubere Installation verschieben und sehen, ob das etwas ändert.
EDIT: Ja, es funktioniert auf einer sauberen Installation :wein: :wein:
Ich werde dieses Thema ausblenden, damit ich nicht mit der Schande leben muss
Ich werde Sie auf dem Laufenden halten, wenn ich herausfinde, was die Ursache war.