我在对象更改列表上得到通知时遇到问题。将汽车添加到汽车列表中并调用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];
);
},
);
您可以将“选择器”替换为“消费者”:
ChangeNotifierProvider<Cars>(
create: (_) => Cars(),
child: Consumer<Cars>(
builder: (_, cars, child) {
return Column(
children: [///display Cars];
);
},
));