问题描述
我正在练习国家管理。我正在尝试将我的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,);