#独家
一个isCollection表示是否收藏,一个goodsName表示名称

2025-04-26 0 3,598

有一个List<Goods>,Goods只有两个属性,一个isCollection表示是否收藏,一个goodsName表示名称。

业务场景是,前端有一个List<Goods>是配置好的,只是商品的isCollection是否收藏需要通过后端接口返回,我在initState()里面调用api接口,在接口中修改某一行的isCollection但是页面没有刷新,请问怎么回事?

在 Flutter 里,若要改变集合对象的某个属性,并且让界面刷新以反映这些更改,就需要借助 Flutter 的状态管理机制。界面不刷新往往是因为没有正确触发状态更新。下面详细分析你的问题并给出解决方案。
在 Flutter 中,修改 List<Goods> 里某个 Goods 对象的 isCollection 属性时,界面不会自动刷新。这是因为 Flutter 不会自动检测到集合内部对象属性的变化。你得调用 setState 方法来通知 Flutter 状态已经改变,从而触发界面刷新。

以下是一个完整的示例代码,展示了如何在 initState 中调用模拟的 API 接口,更新 List<Goods> 中每个 Goods 对象的 isCollection 属性,并且让界面刷新:

import 'package:flutter/material.dart';

// 定义 Goods 类
class Goods {
  bool isCollection;
  String goodsName;

  Goods({required this.isCollection, required this.goodsName});
}

class GoodsListPage extends StatefulWidget {
  @override
  _GoodsListPageState createState() => _GoodsListPageState();
}

class _GoodsListPageState extends State<GoodsListPage> {
  List<Goods> goodsList = [
    Goods(isCollection: false, goodsName: '商品1'),
    Goods(isCollection: false, goodsName: '商品2'),
    Goods(isCollection: false, goodsName: '商品3'),
  ];

  @override
  void initState() {
    super.initState();
    // 模拟调用 API 接口
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. JK下载官网所有资源来源于开发团队,加入会员即可下载使用!如有问题请联系右下角在线客服!
2. JK下载官方保障所有软件都通过人工亲测,为每位会员用户提供安全可靠的应用软件、游戏资源下载及程序开发服务。
3. JK开发团队针对会员诉求,历经多年拥有现今开发成果, 每款应用程序上线前都经过人工测试无误后提供安装使用,只为会员提供安全原创的应用。
4. PC/移动端应用下载后如遇安装使用问题请联系右下角在线客服或提交工单,一对一指导解决疑难。

JK软件下载官网 技术分享 一个isCollection表示是否收藏,一个goodsName表示名称 https://www.jkxiazai.com/4276.html

JK软件应用商店是经过官方安全认证,保障正版软件平台

相关资源

官方客服团队

为您解决烦忧 - 24小时在线 专业服务