所以,我做到了。我认为这些片段可能对其他人有所帮助,所以这是我在组件中遗漏的内容:
这远非通用的有用文档,但也许它能在某人需要时帮助到他们(或者下次我需要时能帮到我自己!)。
import { tracked } from '@glimmer/tracking';
...
@tracked myRating
constructor() {
super(...arguments);
this.userRatings = this.args.topic.user_ratings; // 初始化跟踪属性
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;
}
....
// 然后在更改值的操作中:
this.myRating = Number(newStatus);