【问题标题】:How to use provider inside flutter StatefulWidget?如何在flutter StatefulWidget中使用provider?
【发布时间】:2021-09-30 21:39:34
【问题描述】:

我是 Flutter 新手。

我需要使用提供程序在两个有状态的小部件之间传递数据。我就是这样写代码的。

class ProductAdd extends StatefulWidget {
  @override
  _ProductAddState createState() => _ProductAddState();
}

class _ProductAddState extends State<ProductAdd> {
  TextEditingController nameController = TextEditingController();

  @override
  Widget build(BuildContext context) {
    String name = nameController.text;
    return Provider<String>(
      builder: (context) => name,
      child: Container(
        child: TextField(
              decoration: InputDecoration(
                hintText: 'Product name',
              ),
              controller: nameController,
            ),
),
)}
}

但它显示Provider&lt;String&gt;( builder: (context) =&gt; name, 代码部分的红色下划线,并显示错误消息为 "参数类型'Widget Function(BuildContext)'不能赋值给参数类型'Widget Function(BuildContext, Widget?)?'"

我该如何解决这个问题?

【问题讨论】:

    标签: flutter rest flutter-dependencies provider


    【解决方案1】:

    您有与 Provider 相关的类吗? 例如:

    class Car with ChangeNotifier {
        String _brand= '';
    
        get brand {
            return _brand;
        }
    
        set brand(String brandName) {
            this._brand= brandName;
        }
    
        void someFunction() {
            ...
        }
    }
    

    有了它,您可以执行以下操作:

    class ScreenCarState extends State<ScreenCarState> {
    
        @override
        Widget build(BuildContext context) {
            final car = Provider.of<Car>(context);
            return Text(car.brand);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-07-24
      • 2018-11-28
      • 2021-04-08
      • 2020-03-13
      • 2021-08-09
      • 2020-06-03
      • 2020-10-13
      • 2020-10-16
      • 2020-05-26
      相关资源
      最近更新 更多