Atteso: una volta premuto il pulsante, i tag per l’argomento vengono impostati su my-tag (funziona), il che innesca un re-render del pulsante e lo disabilita.
Atteso: una volta aggiunto manualmente il tag, il pulsante viene disabilitato.
Realtà: il re-render non viene innescato in nessuno dei due scenari.
Il pulsante è correttamente disabilitato/abilitato al refresh della pagina.
Avere una proprietà calcolata che dipende da topic.tags causerà la sua invalidazione quando l’array stesso viene sostituito. Ma non causerà l’invalidazione quando elementi vengono aggiunti/rimossi dall’array.
Quindi penso che probabilmente desideri topic.tags.@each (docs).
In generale stiamo cercando di allontanarci dalle proprietà calcolate e di avvicinarci ai getter nativi/autotracking. Immagino che dovremo modernizzare l’API di topic-footer-buttons a un certo punto per supportare questo
Tuttavia, l’uso di topic.tags.@each non risolve questo problema… (in ogni caso, né quando il tag viene aggiunto manualmente, né quando viene premuto il pulsante).
Un console.log nella funzione disabled() non viene eseguito. Non viene eseguito nemmeno in displayed().
Ho anche provato this.topic.notifyPropertyChange("tags");
E sono anche disperato e ho provato a manipolare altre proprietà (come this.topic.title = this.topic.title + "!" e includendo topic.title in dependentKeys). Anche questo non funziona. Usare this.topic.set... non funziona neanche.
Il mio codice “minimale” nell’OP è il mio codice “reale” al momento. Lo sposterò in un’installazione completamente pulita e vedrò se questo cambia qualcosa.
MODIFICA sì, funziona su un’installazione pulita
Rimuoverò questo argomento dall’elenco in modo da non dover convivere con la vergogna
Vi aggiornerò quando scoprirò cosa stava causando questo problema.