Flutter - MultiProvider (ChangeNotifierProvider) 不起作用
Flutter - MultiProvider (ChangeNotifierProvider) doesn't work
ChangeNotifierProvider 不起作用!我不知道是什么问题。
谁能告诉我这段代码有什么问题?
谢谢
我想将 test 值传递到下一页。
这是主要功能和供应商
void main() {
runApp(
MultiProvider(
providers:[
ChangeNotifierProvider<ProductsNotifier>(create:(context)=> ProductsNotifier()),
// second provider...
],
child:MaterialApp( home: MyApp())
)
);
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
//Provider
return Scaffold(
appBar: AppBar(
title: Text('Test'),
),
body: Container(
child:RaisedButton(
onPressed: (){
ProductsNotifier obj = new ProductsNotifier();
obj.testFun();
Navigator.push(context,
MaterialPageRoute(builder: (context) => NextPage()),
);
},
child: Text('GO TO THE NEXT PAGE'),
)
),
);
}
}
下一页:
class NextPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
var txt = Provider.of<ProductsNotifier>(context);
return Scaffold(
appBar: AppBar(
title: Text('Next Page'),
),
body: Container(
child: Text(txt.test.toString()),
),
);
}
}
Class 产品通知程序
class ProductsNotifier with ChangeNotifier{
String _test ;
String get test => _test;
void testFun() {
_test = "DONE!";
notifyListeners();
}
}
首先删除这一行:
ProductsNotifier obj = new ProductsNotifier();
此处已创建:
ChangeNotifierProvider<ProductsNotifier>(create:(context)=> ProductsNotifier()),
然后
class ProductsNotifier with ChangeNotifier{
替换为:
class ProductsNotifier extends ChangeNotifier{
ChangeNotifierProvider 不起作用!我不知道是什么问题。 谁能告诉我这段代码有什么问题? 谢谢
我想将 test 值传递到下一页。
这是主要功能和供应商
void main() {
runApp(
MultiProvider(
providers:[
ChangeNotifierProvider<ProductsNotifier>(create:(context)=> ProductsNotifier()),
// second provider...
],
child:MaterialApp( home: MyApp())
)
);
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
//Provider
return Scaffold(
appBar: AppBar(
title: Text('Test'),
),
body: Container(
child:RaisedButton(
onPressed: (){
ProductsNotifier obj = new ProductsNotifier();
obj.testFun();
Navigator.push(context,
MaterialPageRoute(builder: (context) => NextPage()),
);
},
child: Text('GO TO THE NEXT PAGE'),
)
),
);
}
}
下一页:
class NextPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
var txt = Provider.of<ProductsNotifier>(context);
return Scaffold(
appBar: AppBar(
title: Text('Next Page'),
),
body: Container(
child: Text(txt.test.toString()),
),
);
}
}
Class 产品通知程序
class ProductsNotifier with ChangeNotifier{
String _test ;
String get test => _test;
void testFun() {
_test = "DONE!";
notifyListeners();
}
}
首先删除这一行:
ProductsNotifier obj = new ProductsNotifier();
此处已创建:
ChangeNotifierProvider<ProductsNotifier>(create:(context)=> ProductsNotifier()),
然后
class ProductsNotifier with ChangeNotifier{
替换为:
class ProductsNotifier extends ChangeNotifier{