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