Flutter 颤振状态小部件状态破坏

Flutter 颤振状态小部件状态破坏,flutter,Flutter,对于Flutter来说是个新手,我在尝试让状态变量“liked”处理if条件时遇到了一些问题 每当我在likedPressed()方法中添加“if”条件时,它会导致图标停止更改颜色,并且打印日志仅显示一个正在注册的条件 即使我在if/else条件中注释掉API调用,它仍然无法到达删除调用 TLDR:我从来没有看到过从广告中删除类似内容的被解雇。这到底是怎么回事 我/弗利特(16128):喜欢的按钮说:真的 打印(“向广告添加类似内容”) 导入“dart:collection”; 进口“包装:颤振

对于Flutter来说是个新手,我在尝试让状态变量“liked”处理
if
条件时遇到了一些问题

每当我在
likedPressed()
方法中添加“if”条件时,它会导致图标停止更改颜色,并且打印日志仅显示一个正在注册的条件

即使我在
if/else
条件中注释掉API调用,它仍然无法到达删除调用

TLDR:我从来没有看到过从广告中删除类似内容的
被解雇。这到底是怎么回事

我/弗利特(16128):喜欢的按钮说:真的

打印(“向广告添加类似内容”)

导入“dart:collection”;
进口“包装:颤振/材料.省道”;
导入“包:flifter/services.dart”;
导入“包:http/http.dart”;
导入“包:testApp_app_androidx/api_helper_函数/testApp_api_helper.dart”;
导入“包:testApp_app_androidx/resources/assets.dart”;
导入“包:testApp_app_androidx/widgets/home/reusible_widgets/interactiable_widget.dart”;
导入“包:testApp_app_androidx/widgets/home/reusables_widgets/liked_button.dart”;
进口“包装:颤振/cupertino.dart”;
//-------------------------------------------------------
//上课时按下了按钮
//-------------------------------------------------------
类TestApplicationVideoAction扩展StatefulWidget{
@凌驾
PostState createState()=>新建PostState();
}
类PostState扩展了状态{
布尔=假;
testAppAPIHelper testApp_api_helper=新testAppAPIHelper(false);
void likedPressed(){
触觉反馈。振动();
设置状态(){
this.liked=!this.liked;
打印(“喜欢的按钮显示:${this.liked}”);
});
//---------------------------------------------------------------------------
//就像打破状态的按钮动作一样
//---------------------------------------------------------------------------
if(this.liked=true){
打印(“向广告添加类似内容”);
testApp_api_helper.addTestAppAddLikereQuest(“like”);//api异步http get请求
}
否则{///这个条件永远不会满足!!!!!!!!!!!!!!!!
打印(“从广告中删除类似内容”);
testApp_api_helper.removestappadlikerequest(“remove_like”);//api异步http get请求
}
//---------------------------------------------------------------------------
}
@凌驾
小部件构建(构建上下文){
回来
手势检测器(
onTap:()=>likedPressed(),
子:容器(
子项:列(子项:[
新的IconPictureWidget(图标(喜欢?图标。收藏:图标。收藏),
颜色:喜欢?颜色。红色:颜色。白色,尺寸:50,),
正文(
“500k”,
样式:TextStyle(字体大小:10,颜色:Colors.white),
),
],)
),
);
}
}
//---------------------------------------------------------------------------
//图片图标
//---------------------------------------------------------------------------
类IconPictureWidget扩展了无状态Widget{
图标(u)图标;;
IconPictureWidget(图标输入图标){
this.incoming_icon=传入_icon;
}
@凌驾
小部件构建(构建上下文){
归还新的装饰盒(
//子对象:新中心(宽度因子:2.0,子对象:新文本(“我的图像”),
孩子:这个.u图标,
位置:DecorationPosition.background,
装饰:新盒子装饰(
//形状:BoxShape.circle,//用于视觉诊断
//颜色:Colors.transparent,//用于视觉诊断
//image:newdecorationimage(image:newassetimage('assets/avatar.png'),//尚未使用
),
);
}
}
如果(this.like=true){
打印(“向广告添加类似内容”);
testApp_api_helper.addTestAppAddLikereQuest(“like”);//api异步http get请求
}
您正在将
true
分配给
like
,因此它将始终为
true
。 将其更改为:

if(喜欢){
打印(“向广告添加类似内容”);
testApp_api_helper.addTestAppAddLikereQuest(“like”);//api异步http get请求
}否则{
...
}

如果这只是一个复制错误,我有其他理论解释为什么它不起作用。我不敢相信这就是问题所在。非常感谢。
import 'dart:collection';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:http/http.dart';
import 'package:testApp_app_androidx/api_helper_functions/testApp_api_helper.dart';
import 'package:testApp_app_androidx/resources/assets.dart';
import 'package:testApp_app_androidx/widgets/home/reusable_widgets/interactable_widget.dart';
import 'package:testApp_app_androidx/widgets/home/reusable_widgets/liked_button.dart';
import 'package:flutter/cupertino.dart';

//-------------------------------------------------------
//Liked button was pressed class
//-------------------------------------------------------
class testAppLikeVideoAction extends StatefulWidget{
  @override
  PostState createState() => new PostState();
}
class PostState extends State<testAppLikeVideoAction>{

  bool liked = false;
  testAppAPIHelper testApp_api_helper = new testAppAPIHelper(false);

  void likedPressed(){
    HapticFeedback.vibrate();
    setState(() {
      this.liked = !this.liked;
      print("And the liked button says: ${this.liked}");
    });
    //---------------------------------------------------------------------------
    //Like Button Actions that are breaking the state
    //---------------------------------------------------------------------------
    if(this.liked = true) {
      print("Adding a like to ad");
      testApp_api_helper.addtestAppAdLikeRequest("like");  //api async http get request
    }
    else{ ///this condition is never met!!!!!!!!!!!!!!!!
      print("Removing a like from ad");
      testApp_api_helper.removetestAppAdLikeRequest("remove_like"); //api async http get request
    }
    //---------------------------------------------------------------------------
  }

  @override
  Widget build(BuildContext context) {
    return
      GestureDetector(
        onTap: () => likedPressed(),
            child: Container(
                child: Column(children: <Widget>[
                  new IconPictureWidget( Icon(liked ? Icons.favorite : Icons.favorite_border,
                    color: liked ? Colors.red : Colors.white, size: 50,) ),
                  Text(
                    "500k",
                    style: TextStyle(fontSize: 10, color: Colors.white),
                  ),
                ],)
            ),
          );
  }
}










//---------------------------------------------------------------------------
//Picture icon
//---------------------------------------------------------------------------

class IconPictureWidget extends StatelessWidget {
  Icon incoming_icon;
  IconPictureWidget(Icon incoming_icon){
    this.incoming_icon = incoming_icon;

  }
  @override
  Widget build(BuildContext context) {
    return new DecoratedBox(
      //child: new Center(widthFactor: 2.0, child: new Text("my image")),
      child: this.incoming_icon,
      position: DecorationPosition.background,
      decoration: new BoxDecoration(
        // shape: BoxShape.circle, //for visual diagnosis
        // color: Colors.transparent, //for visual diagnosis
        // image:  new DecorationImage(image: new AssetImage('assets/avatar.png')), //haven't used yet
      ),
    );
  }
}