我正在尝试提供程序,它接缝一切正常,但textField文本未在我的文本小部件中更新

问题描述

我正在练习国家管理。我正在尝试将我的textField(第一类)更新为Second()类中的TextWidget。我不知道我在这里遇到了什么问题?

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider<Data>(
      create: (context) => Data(),child: MaterialApp(
        home: First(),),);
  }
}

我的头等舱

class First extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
          children: [
            TextField(
              onChanged: (value) {
                Provider.of<Data>(context).changeString(value);
              },Second(),],}

第二等人

class Second extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return 
        Text(
          Provider.of<Data>(context).text,);
  }
}

扩展了ChangeNotifier的我的数据类

class Data extends ChangeNotifier {

  String text = 'Type Something';

  void changeString(String newText) {
    text = newText;
    notifyListeners();
  }
}

解决方法

添加使用者以使用新数据重建小部件。

Consumer<Data>(
          builder: (context,value,_) => Text(
          Provider.of<Data>(context).text,);