ChangeNotifierProvider不工作! 我不知道是什么问题。谁能告诉我这段代码有什么问题吗?
我想通过 检验 值到下一页。
这里是主要功能和提供者
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()),
),
);
}
}
产品类Notifier
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{