Flutter 使用Getx包更改图标的状态

Flutter 使用Getx包更改图标的状态,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,使用Getx包进行状态管理并从云firestore获取数据。我正在使用Getbuilder更改状态。当我按下这个图标时,我有一个相似的图标,当前用户的id存储在数据库的列表中,我检查列表是否包含当前用户的id,然后我切换颜色。一切都很好,没有颜色变化。 帮助我如何改变图标的颜色,如果它不喜欢 以下是我的图标代码: class ArticleOptions extends StatelessWidget { final DocumentSnapshot articles; ArticleOpti

使用Getx包进行状态管理并从云firestore获取数据。我正在使用Getbuilder更改状态。当我按下这个图标时,我有一个相似的图标,当前用户的id存储在数据库的列表中,我检查列表是否包含当前用户的id,然后我切换颜色。一切都很好,没有颜色变化。 帮助我如何改变图标的颜色,如果它不喜欢

以下是我的图标代码:

class ArticleOptions extends StatelessWidget {
final DocumentSnapshot articles;

ArticleOptions({this.articles});

@override
Widget build(BuildContext context) {
return Padding(
  padding: const EdgeInsets.only(top: 15, right: 30, left: 30, bottom: 15),
  child: GetBuilder<ArticlesController>(
    init: ArticlesController(),
    builder: (controller) {
      return Row(
        children: [
          InkWell(
            onTap: () {
              controller.likeArticle(controller.currentUser.uid, articles.data()['id']);
            },
            child: Row(
              children: [
                Text(
                  controller.article.data()['likes'].length.toString(),
                  style: TextStyle(
                    fontSize: 15,
                    fontWeight: FontWeight.bold,
                    color: CustomColors.blackColor,
                  ),
                ),
                SizedBox(
                  width: 5,
                ),
                SvgPicture.asset(
                  'assets/Heart.svg',
                  height: 22,
                  color: articles
                          .data()['likes']
                          .contains(controller.currentUser.uid)
                      ? Colors.pink
                      : Colors.grey.withOpacity(0.7),
                ),
              ],
            ),
          ),
        ],
      );
    },
  ),
);
 }
}
class ArticleOptions扩展了无状态小部件{
最后文件和文章;
ArticleOptions({this.articles});
@凌驾
小部件构建(构建上下文){
返回填充(
填充:仅限常量边集(顶部:15,右侧:30,左侧:30,底部:15),
孩子:GetBuilder

Future<void> likeArticle(String userId, String articleId) async {
DocumentSnapshot doc = await _articlesCollection.doc(articleId).get();
if (doc.data()['likes'].contains(userId)) {
  await _articlesCollection.doc(articleId).update({
    'likes': FieldValue.arrayRemove([userId])
  });
} else {
  await _articlesCollection.doc(articleId).update({
    'likes': FieldValue.arrayUnion([userId])
  });
 update();
}