首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >新文本(counter.toString())显示不更新计数器增量在颤振

新文本(counter.toString())显示不更新计数器增量在颤振
EN

Stack Overflow用户
提问于 2019-11-01 03:01:45
回答 1查看 536关注 0票数 0

我正在使用flutter构建一个食品推车应用程序。但是,当Listtile的尾部增加或减少时,我不得不显示计数器值。

每当一个新的项目被添加到购物车时,计数器就会增加,但是应用程序不会显示当前的计数器值。

下面是下面的代码。我已经在faced.Thank你的问题上发表了评论。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import 'package:flutter/material.dart';
import 'package:ifhe_canteen/StudentCart.dart';
class StudentHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomePage(),
    );//MaterialApp
  }
}
class HomePage extends StatefulWidget{
  @override
  HomePage1 createState() => new HomePage1();
  }
class HomePage1 extends State<HomePage>{
  int selectedPage=0;
  final pageOptions=[
    Text('Messages'),
    Text('Cart'),
    Text('Profile'),

  ];
  @override
  Widget build(BuildContext context) {
    var Listview=ListView(
      children: <Widget>[
        ListTile(
          leading: Icon(Icons.fastfood),
        )
      ],
    );
    return Scaffold(
      appBar: AppBar(
        title: Text('Categories'),
      ),
      body:new Container(
        child: new ListView.builder(
          itemBuilder: (BuildContext context, int index) {
            return new StuffInTiles(listOfTiles[index]);
          },
          itemCount: listOfTiles.length,
        ),
      ),//body: pageOptions[selectedPage],
      bottomNavigationBar: BottomNavigationBar(
        currentIndex: selectedPage,
        onTap: (int index){
          setState(() {
            selectedPage=index;
          });
        },// this will be set when a newx  tab is tapped
        items: [
          BottomNavigationBarItem(
            icon: new Icon(Icons.home),
            title: new Text('Home'),
          ),
          BottomNavigationBarItem(
            icon: new Icon(Icons.shopping_basket),
            title: new Text('Cart'),
          ),
          BottomNavigationBarItem(
              icon: Icon(Icons.person),
              title: Text('Profile'),
          ),
        ],
      ),
    );
  }
}
class StuffInTiles extends StatelessWidget {
  final MyTile myTile;
  StuffInTiles(this.myTile);
  int _itemCount;
  String item;
  void _removeproduct(){
    _itemCount--;
    print(_itemCount);
  }
  int _addproduct(){
    _itemCount++;
    print(_itemCount);
    item=_itemCount.toString();
    print(item);
    return _itemCount;
  }
  @override
  Widget build(BuildContext context) {
    return _buildTiles(myTile);
  }

  Widget _buildTiles  (MyTile t) {
    if (t.children.isEmpty)
      {
        return new ListTile(
          dense: true,
          enabled: true,
          isThreeLine: false,
          title: new Text(t.title),
          trailing:new Row(
            mainAxisSize: MainAxisSize.min,
            children: <Widget>[
              new  IconButton(icon: new Icon(Icons.remove),onPressed:()=>_removeproduct()),
              new Text(_itemCount.toString()),//here, the incremented value  is not displayed
              new IconButton(icon: new Icon(Icons.add),onPressed:()=>_addproduct()),//here the function is called
            ],
          ),
          onTap:()=>print("here cart value will be incremented"),
        );
      }
    return new ExpansionTile(
      key: new PageStorageKey<MyTile>(t),
      title: new Text(t.title),
      children: t.children.map(_buildTiles).toList(),
    );
  }
}

class MyTile {
  String title;
  List<MyTile> children;
  MyTile(this.title, [this.children = const <MyTile>[]]);
}

List<MyTile> listOfTiles = <MyTile>[
  new MyTile(
    'Mess 1',
    <MyTile>[
      new MyTile(
        'Maggie',
        <MyTile>[
          new MyTile('Veg Cheese Maggie'),
          new MyTile('Plain Maggie'),
          new MyTile('Chicken Maggie'),
        ],
      ),//Maggie
      new MyTile(
          'Paratha',
          <MyTile>[
            new MyTile('Veg Paratha'),
            new MyTile('Veg Butter Paratha'),
            new MyTile('Chicken Paratha'),
            new MyTile('Chicken Butter Paratha'),
          ],
      ),//Paratha
    ],
  ),
  new MyTile(
    'Mess 2',
    <MyTile>[
      new MyTile(
        'Maggie',
        <MyTile>[
          new MyTile('Veg Cheese Maggie'),
          new MyTile('Plain Maggie'),
          new MyTile('Chicken Maggie'),
        ],
      ),//Maggie
      new MyTile(
        'Paratha',
        <MyTile>[
          new MyTile('Veg Paratha'),
          new MyTile('Veg Butter Paratha'),
          new MyTile('Chicken Paratha'),
          new MyTile('Chicken Butter Paratha'),
        ],
      ),//Paratha
    ],
  ),
];
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-01 03:33:32

当您更新代码中的变量时,您需要调用setState,并且希望在屏幕上看到这种更改。注意,它只在StatefulWidgets中工作,这意味着如果您需要它,您需要一个StatefulWidget (就像您已经做的那样)。setState方法将刷新屏幕,查看的值将发生变化。

编辑_addproduct_removeproduct函数,以便在_itemCounter变量上有一个setState:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void _removeproduct(){
  setState((){
    _itemCount--;
  });
}
int _addproduct(){
  setState((){
    _itemCount++;
  });
}

我建议你读一些文章如何使用颤振状态。诚挚的问候。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58658105

复制
相关文章
未识别的网络的原因 未识别网络的解决方法
相信会有很多的网友遇到过一个问题,就是明明已经连接了路由器,却显示出一个黄色的小感叹号,互联网就无法正常使用了。再点击开关于网络连接的页面之后会显示未识别的网络。那么在大家遇到这种情况的时候,会如何解决呢?下面就来为大家带来一些实用的解决方法。
用户8739990
2021/07/23
7.3K0
未识别的网络的原因 未识别网络的解决方法
JWT-JSON Web令牌的深入介绍
从桌面应用程序到Web应用程序或移动应用程序,身份验证是几乎所有应用程序中最重要的部分之一。 本教程是JWT(JSON Web令牌)的深入介绍,可帮助您了解:
ccf19881030
2020/06/29
2.4K0
JWT-JSON Web令牌的深入介绍
Linux 修改密码出现“鉴定令牌操作错误”
第二种:lsattr /etc/shadow 得到----i--------e- /etc/shadow(文件的隐藏属性,具体不扩展),这里需要将i去掉,用chattr -i /etc/shadow
用户5760343
2022/05/24
8.1K0
JSON Web 令牌(JWT)是如何保护 API 的
你可以已经听说过 JSON Web Token (JWT) 是目前用于保护 API 的最新技术。
用户4283147
2022/10/27
2.1K0
不为别的,聊聊react源码的设计理念
以前在看一些开源项目的源码时,比如cornerstone(一种为医学影像服务的web框架),折服于其优秀的设计模式,灵活的工具扩展,丰富的数据结构,在当时阅读和学习这些源码时,都是出于公司业务考虑,只是看懂了个大概,而如今随着编码技能的提高和经验的积累,我发现,源码的背后其实是在阐述一种设计理念,自顶而下,设计思想抽象逐渐落地,落实到每一行代码,同时我也有了进一步的体会,软件架构在某种程度上是为了服务它的设计理念,它的技术平衡点。
用户3986961
2022/03/15
6430
不为别的,聊聊react源码的设计理念
golang--ratelimit令牌桶原理分析
限流对某一时间窗口内高于系统承载的请求进行限制,通过限速来保护系统,一旦达到限制速率则可拒绝服务,等待。常见调用平台及服务,比如微信发消费券服务每秒500qps,万一我们超过请求频次,就会发生意想不到的业务问题,踩过坑的小伙伴深有体会
小许code
2023/02/21
7340
golang--ratelimit令牌桶原理分析
3种常见的Class级别的错误
ClassNotFoundException 很明显,这个错误是 找不到类异常,即在当前classpath路径下找不到这个类。 ClassNotFoundException继承了Exception,是必须捕获的异常,所以这个异常一般发生在显示加载类的时候,如下面两种方式显示来加载类并要捕获异常。 public static void main(String[] args) { try { Class.forName("com.User"); } catch (ClassN
Java技术栈
2018/03/30
2.9K0
3种常见的Class级别的错误
如何使用jwtXploiter测试JSON Web令牌的安全性
 关于jwtXploiter  jwtXploiter是一款功能强大的安全测试工具,可以帮助广大研究测试JSON Web令牌的安全性,并且能够识别所有针对JSON Web令牌的已知CVE漏洞。 jwtXploiter支持的功能如下: 篡改令牌Payload:修改声明和值; 利用已知的易受攻击的Header声明(kid、jku、x5u); 验证令牌有效性; 获取目标SSL连接的公钥,并尝试在仅使用一个选项的密钥混淆攻击中使用它; 支持所有的JWA; 生成JWK并将其插入令牌Header中
FB客服
2023/03/30
1.1K0
如何使用jwtXploiter测试JSON Web令牌的安全性
React 错误边界指南
虽然在错误到达生产环境之前捕获错误是理想的,但是其中一些错误(例如网络错误)可能会通过测试而影响用户。如果你的 React 组件没有正确地捕捉到第三方库或 React Hooks 抛出的错误,这样的错误要么导致 React 生命周期崩溃,要么到达主执行线程的顶层,导致“白屏”场景:
用户8921923
2022/10/24
2.5K0
React 错误边界指南
PHP解析json、xml错误
解析json php内置函数json_decode() 可以解析json字符串 但是有的时候看起来正确的json,解析却一直返回null。 你知道吗,json是可能解析失败的,此时PHP不会产生提示。 我们需要手动通过json_last_error()函数获取 function json_decode_siam($string, $mark = false){ $data = json_decode($string, $mark); switch (json_last_error()) {
宣言言言
2019/12/15
2.5K0
大数据分析:闻香识佳人
  大数据还是大忽悠?作为科技领域最时髦的词汇之一,大数据(Big Data)带来的机遇究竟有没有被过分炒作?在2013年夏季达沃斯论坛上,这个议题以一场辩论会的形式展开。最终胜出的观点:反方认为,作为热概念,“大数据”正在影响着传统制造业、零售业、金融业、汽车业、物流业,也令研究机构和政府部门大开眼界。   可视化的大数据才是酷的,好比双目失明的退休中校斯莱德能够闻香识佳人。 “我们不关心你的数据到底有多大,而关心怎么来处理数据,数据开发的结果哪些是软件解决不了的,也就是从大数据中获得一种‘可视化’的意
CDA数据分析师
2018/02/05
5330
给在本机运行的 React 程序配置 HTTPS
如果用 create-react-app 构建一个程序,并且在本地运行,默认情况下会用 HTTP 协议为该程序提供服务。而在生产环境中运行的程序都用 HTTPS 进行服务。
疯狂的技术宅
2020/11/03
2.9K0
给在本机运行的 React 程序配置 HTTPS
动态令牌_创建安全令牌
HMAC-based One-Time Password 简写,表示基于 HMAC 算法加密的一次性密码。是事件同步,通过某一特定的事件次序及相同的种子值作为输入,通过 HASH 算法运算出一致的密码。
全栈程序员站长
2022/11/17
1.5K0
动态令牌_创建安全令牌
本机未装Oracle数据库时Navicat for Oracle 报错:Cannot create oci environment 原因分析及解决方案
因为要更新数据库加个表,远程桌面又无法连接。。。所以就远程到另外一台电脑,然后用navicat通过内网修改目标数据库。
木子墨
2018/09/13
2.9K0
本机未装Oracle数据库时Navicat for Oracle 报错:Cannot create oci environment 原因分析及解决方案
Rest API: Json参数格式错误时显示Json原文
一开始想寻找其他方式,当抛出异常的时候,就从HttpServletRequest读取body内容。但是做不到,因为在做Json读取的时候,InputStream已经被读取了,无法再次获取到body内容。所以只能通过自定义MessageConverter的方式。
十毛
2019/03/27
1.9K0
令牌模拟
在入侵过程中,令牌盗窃和用户冒充可以提供很大帮助,节省我们大量时间并帮助我们尽可能保持隐秘,仅使用 Microsoft Windows 操作系统本身提供的功能和工具。
Khan安全团队
2022/01/18
1.3K0
【React 错误处理】 ---- Error: Minified React error #185;
1. 报错信息 Error: Minified React error #185; visit https://reactjs.org/docs/error-decoder.html?invarian
Rattenking
2022/01/06
3.2K0
【React 错误处理】 ---- Error: Minified React error #185;
React 17 要来了,非常特别的一版
React 最近发布了v17.0.0-rc.0,距上一个大版本v16.0(发布于 2017/9/27)已经过去近 3 年了
ayqy贾杰
2020/08/25
1.6K0
React 17 要来了,非常特别的一版
【深度知识】JSON Web令牌(JWT)的原理,流程和数据结构
JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理,用法和详细的数据结构。
辉哥
2019/07/10
29K0
【深度知识】JSON Web令牌(JWT)的原理,流程和数据结构
点击加载更多

相似问题

JSON分析错误: react本机中未识别的令牌“<”

12

响应本机JSON分析错误:无法识别的令牌'<‘

11

JSON分析错误:角中未识别的令牌“<”

24

如何解决警告"JSON分析错误:未识别的令牌'<'"?

12

JSON解析错误:未识别的令牌<

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文