清空原來寫的持久化的代碼;app
添加對應的引用,stless生成一個靜態的類。建議始終靜態的類,防止重複渲染框架
糾正個錯誤,上圖的CartPage單詞拼錯了,這裏改過來防止後面,運行app的時候報錯less
build內咱們使用scaffold腳手架異步
取數據須要等待時間的,因此之類使用異步async,咱們的provide須要context上下文,因此方法內咱們要接收一個context對象的參數async
在body裏面咱們要調用Future的方法就要用到FutureBuilderide
修改輸出的內容是goodsId不是goodsName佈局
輸出了Name值ui
provide/cart.dart文件,單詞拼錯了 修正爲goodsNamespa
在此運行時候須要清空下購物車,從新添加持久化的數據才行。!!!!!切記必定要清空購物車3d
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'; } }