Flutter 我已经编写了这段代码,但它不允许我在ChangeNotifierProvider中使用builder方法?我不知道,怎么摆脱这个?

Flutter 我已经编写了这段代码,但它不允许我在ChangeNotifierProvider中使用builder方法?我不知道,怎么摆脱这个?,flutter,Flutter,您可以复制粘贴运行下面的完整代码 您可以使用创建 代码片段 import 'package:flutter/material.dart'; import 'package:learningflutter5h/screens/product_detail_screen.dart'; import 'package:learningflutter5h/screens/products_overview_screen.dart'; import 'package:provider/provider.d

您可以复制粘贴运行下面的完整代码
您可以使用
创建

代码片段

import 'package:flutter/material.dart';
import 'package:learningflutter5h/screens/product_detail_screen.dart';
import 'package:learningflutter5h/screens/products_overview_screen.dart';
import 'package:provider/provider.dart';
import './providers/products.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return  ChangeNotifierProvider(
    //my builder is not running here

          builder:(ctx)=>Products(),
          child: MaterialApp(
            title: 'My Shop',
            theme: ThemeData(
              primarySwatch: Colors.purple,
              accentColor: Colors.deepOrange,
              fontFamily: 'Lato',
            ),
            home: ProductsOverviewScreen(),
            routes: {ProductDetailScreen.routName: (ctx) => ProductDetailScreen()},
          ),
        );
      }
    }
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回ChangeNotifierProvider(
创建:(上下文)=>Product(),
孩子:MaterialApp(
家:脚手架(
工作演示

完整代码

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider<Product>(
      create: (context) => Product(),
      child: MaterialApp(
        home: Scaffold(
导入“包装:颤振/材料.省道”;
导入“包:provider/provider.dart”;
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回ChangeNotifierProvider(
创建:(上下文)=>Product(),
孩子:MaterialApp(
家:脚手架(
appBar:appBar(标题:文本(“我的应用”),
正文:世界其他地区(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
容器(
填充:常数边集。全部(20),
颜色:颜色。绿色[200],
儿童:消费者(
生成器:(上下文、myModel、子对象){
返回上升按钮(
child:Text('Do something'),
已按下:(){
myModel.doSomething();
},
);
},
)),
容器(
填充:常量边集。全部(35),
颜色:颜色。蓝色[200],
儿童:消费者(
生成器:(上下文、myModel、子对象){
返回文本(myModel.someValue);
},
),
),
],
),
),
),
);
}
}
使用ChangeNotifier对产品进行分类{
字符串someValue='Hello';
无效剂量测定法(){
someValue=‘再见’;
打印(someValue);
notifyListeners();
}
}
    import 'package:flutter/material.dart';
    import 'package:provider/provider.dart';

    void main() => runApp(MyApp());

    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return ChangeNotifierProvider<Product>(
          create: (context) => Product(),
          child: MaterialApp(
            home: Scaffold(
              appBar: AppBar(title: Text('My App')),
              body: Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  Container(
                      padding: const EdgeInsets.all(20),
                      color: Colors.green[200],
                      child: Consumer<Product>(
                        builder: (context, myModel, child) {
                          return RaisedButton(
                            child: Text('Do something'),
                            onPressed: () {
                              myModel.doSomething();
                            },
                          );
                        },
                      )),
                  Container(
                    padding: const EdgeInsets.all(35),
                    color: Colors.blue[200],
                    child: Consumer<Product>(
                      builder: (context, myModel, child) {
                        return Text(myModel.someValue);
                      },
                    ),
                  ),
                ],
              ),
            ),
          ),
        );
      }
    }

    class Product with ChangeNotifier {
      String someValue = 'Hello';

      void doSomething() {
        someValue = 'Goodbye';
        print(someValue);
        notifyListeners();
      }
    }