Quindi l’ho fatto. Penso che questi pezzi potrebbero essere utili per qualcun altro, quindi ecco cosa mi mancava nel componente:
Questo è tutt’altro che una documentazione generalmente utile, ma forse aiuterà qualcuno se ne avrà bisogno (o forse la troverò la prossima volta che ne avrò bisogno!).
import { tracked } from '@glimmer/tracking';
...
@tracked myRating
constructor() {
super(...arguments);
this.userRatings = this.args.topic.user_ratings; // Initialize tracked property
if (!this.args.topic.user_ratings) {
return [];
}
const ratingId = this.args.id;
const rating = this.args.topic.user_ratings.find((rating) => Number(rating.rating_id) === Number(ratingId));
this.myRating = rating?.rating_value;
}
....
// and then in the action that changes the value:
this.myRating = Number(newStatus);