Flutter/Dat:如何使用ChangeNotificationProvider使布尔值可侦听



我使用ChangeNotificationProvider提供布尔值,根据用户是否登录,返回true或false。如何启用布尔值列表,以便提供者在用户登录/注销时自动更新它?

Widget build(BuildContext context) {
var socialProvider = Provider.of<SocialProvider>(context);
return Container(  
child: new FlatButton(
onPressed: () {
if (
socialProvider.currentlogged != true
) {                        
Do something
} else {
Do something else
},
),}

使用提供者实现身份验证功能的最佳方法是用提供者包装父类。例如,

MultiProvider(
providers: [
ChangeNotifierProvider(
create: (_) => Authentication(),
),
)
],
child: MaterialApp(
........
),

通过这种方式,您可以在应用程序的任何位置使用提供者,只需将子窗口小部件包装为Consumer即可。

Consumer<Authentication>(
builder: (context, auth, _) => Container(  
child: new FlatButton(
onPressed: () {
if (auth.currentlogged != true) {                        
Do something
} else { 
Do something else
}

由于身份验证控制着整个应用程序本身,我用Provider包装了MaterialApp,您可以在任何小部件中进行身份验证,这样它的所有子级都可以使用它。当您调用notifyListeners((时;在提供者中,它将重新呈现整个使用者部分。

相关内容

  • 没有找到相关文章

最新更新