• Flutter实战视频-移动电商-53.购物车_商品列表UI框架布局


    53.购物车_商品列表UI框架布局

     cart_page.dart

    清空原来写的持久化的代码;

    添加对应的引用,stless生成一个静态的类。建议始终静态的类,防止重复渲染

    纠正个错误,上图的CartPage单词拼错了,这里改过来防止后面,运行app的时候报错

    build内我们使用scaffold脚手架

    创建Future方法获取购物车持久化数据

    取数据需要等待时间的,所以之类使用异步async,我们的provide需要context上下文,所以方法内我们要接收一个context对象的参数

    在body里面我们要调用Future的方法就要用到FutureBuilder

    效果展示:

    修改输出的内容是goodsId不是goodsName

    输出了Name值

    纠正错误:

    provide/cart.dart文件,单词拼错了 修正为goodsName

    在此运行时候需要清空下购物车,重新添加持久化的数据才行。!!!!!切记一定要清空购物车

    最终代码:

    cart_page.dart

    import 'package:flutter/material.dart';
    import 'package:provide/provide.dart';
    import 'package:flutter_shop/provide/cart.dart';
    
    class CartPage extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('购物车'),
          ),
          body: FutureBuilder(
            future: _getCartInfo(context),
            builder: (context,snapshot){
              if(snapshot.hasData){
               
                List cartList=Provide.value<CartProvide>(context).cartList;
                //return Text('有数据啊'+cartList.length.toString());
                return ListView.builder(
                  itemCount: cartList.length,
                  itemBuilder: (context,index){
                    return ListTile(
                      title:Text(cartList[index].goodsName)
                    );
                  },
                );
              }else{
                return Text('正在加载');
              }
            },
          ),
        );
      }
    
      Future<String> _getCartInfo(BuildContext context) async{
        await Provide.value<CartProvide>(context).getCartInfo();
        //print('=========================获取购物车内数据');
        return 'end';
      }
    
    }
  • 相关阅读:
    Oracle连接数一直在增
    ora00020: maximum number of processes (150) exeeded
    oracle归档日志满了
    C# ZPL
    error CS0227: 不安全代码只会在使用 /unsafe 编译的情况下出现
    最全zpl语言指令解析(含乱码)
    ZPL 打印机实例
    ora-01400 无法将NULL插入 ID 解决方法
    windows 选择时间控件(选择日期, 小时分钟秒)
    用户登陆检验----没有优化,大神可以帮忙优化优化
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/10771914.html
Copyright © 2020-2023  润新知