Flutter Provider-具有对象列表的选择器

问题描述 投票:0回答:1

我在对象更改列表上得到通知时遇到问题。将汽车添加到汽车列表中并调用notifyListeners()后,选择器小部件未触发。有人可以解释为什么吗?当前,我通过将Selector<Cars, List<Car>>更改为Selector<Cars, int>并触发对cars.length更改的操作来解决此问题。哪有错。

class Car {
  String model;
  int speed;
}   

class Cars extends ChangeNotifier{
    List<Car> cars = [];


    void addCar(Car car){
     cars.add(car);
     notifyListeners();
  }
}

return Selector<Cars, List<Car>>(
      selector: (_, cars) => cars.cars,
      builder: (_, carsList, __) {
        return Column(
               children: [///display Cars];
         );
      },
    );
flutter selector provider
1个回答
0
投票

您可以将“选择器”替换为“消费者”:

ChangeNotifierProvider<Cars>(
      create: (_) => Cars(),
      child: Consumer<Cars>(
        builder: (_, cars, child) {  
          return Column(
               children: [///display Cars];
          );
        },
      ));
© www.soinside.com 2019 - 2024. All rights reserved.