如何使用消费者从嵌套模型类访问 ViewModel 类的数据?
我知道我们可以使用ChangeNotifierProvider
并Consumer
从小部件访问视图模型。但我试图从没有上下文或build
方法的模型类中访问属性。将 ViewModel 传递给每个嵌套类的唯一选择是什么?如果我有多层嵌套怎么办?我该如何优化呢?
简化模型结构
class TabItemsViewModel{
bool grouped=false;
List<ProductItemModel> products = [...];
class ProductItemModel{
List<ProductItemAddonModel> addons=[...];
class ProductItemAddonModel{
bool grouped=false;
int get value{
// I'm trying access grouped property from TabItemsViewModel;
简化的小部件结构
class MyApp extends State<SussaApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: ChangeNotifierProvider(
create: (_) => TabItemsViewModel(),
child: TabItemsView(),
class TabItemsView extends StatelessWidget {
@override
Widget build(BuildContext context) {
final vm = Provider.of<TabItemsViewModel>(context);
return Column(
children: [
ListView.builder(
itemCount: vm.products.length,
itemBuilder: (BuildContext context, int index) {
return ProductItem(model: vm.products[index]);
谢谢