Flutter移动电商实战 --(33)列表页_子类和商品列表交互效果

主要实现点击小类下面的列表跟着切换

获取右侧下面的列表信息,即要传递大类的id也要传递小类的,所以需要把左侧的大类的id也要Provide化

可以看下网站上的接口说明:

https://jspang.com/posts/2019/03/01/flutter-shop.html#%E5%90%8E%E7%AB%AF%E6%8E%A5%E5%8F%A3api%E6%96%87%E6%A1%A3

大类id Provide化

当我们点击左侧的大类的时候,要把当前的大类id存起来。

category_page.dart

我们修改了上面的多传递了参数以后,那么category_page.dart页面地方就会报错了

分别传入我们的大类id

这我们去掉async和await修饰符

我们把这个_getGoodsList方法复制一个 到下面

复制到 _rightInkWell方法下面

已经有这个访问数据的方法,下一步就是调用我们的方法

数据展示:

最终代码:

provide/child_category.dart

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import 'package:flutter/material.dart';
import '../model/category.dart';
 
class ChildCategory with ChangeNotifier{
 List<BxMallSubDto> childCategoryList=[];
 int childIndex=0;//子类高亮索引
 String categoryId='4';//大类ID 白酒的id 默认为4
  //大类切换逻辑
  getChildCategory(List<BxMallSubDto> list,String id){
    childIndex=0;//每次点击大类,小类的索引都要清空掉
    categoryId=id;
    BxMallSubDto all=BxMallSubDto();
    all.mallCategoryId="00";
    all.mallCategoryId="00";
    all.comments="null";
    all.mallSubName='全部';
    childCategoryList=[all];
    //childCategoryList=list;
    childCategoryList.addAll(list);
    notifyListeners();//监听
  }
  //改变子类索引,indexs是从哪里来的呢?从我们具体的类中进行传递
  changeChildIndex(index){
    childIndex=index;//把传递过来的index赋值给我们的childIndex
    notifyListeners();//通知
  }
}

category_page.dart

.

posted @   每天都要进步一点点  阅读(585)  评论(0编辑  收藏  举报
编辑推荐:
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
阅读排行:
· “你见过凌晨四点的洛杉矶吗?”--《我们为什么要睡觉》
· 编程神器Trae:当我用上后,才知道自己的创造力被低估了多少
· C# 从零开始使用Layui.Wpf库开发WPF客户端
· C#/.NET/.NET Core技术前沿周刊 | 第 31 期(2025年3.17-3.23)
· 开发的设计和重构,为开发效率服务
历史上的今天:
2018-09-01 JS的深拷贝和浅拷贝
2017-09-01 React-Native 之 GD (十八)监听 TabBarItem 点击与传值实现 点击 Item 进行刷新功能
2017-09-01 React-Native 之 GD (十七)小时风云榜按钮处理
2017-09-01 React-Native 之 GD (十六)首页筛选功能
点击右上角即可分享
微信分享提示