【发布时间】:2022-10-21 21:21:41
【问题描述】:
我有几个小部件使用我的提供者作为条件,我需要一个调用来从初始化状态访问我的提供者到整个小部件,而不是将每个小部件包装到我的提供者中,它是consumer
这是我的provider
class ProviderForFiltter extends ChangeNotifier {
bool isFiltterrr = true ;
bool get isFiltter => isFiltterrr;
void changeStatus(bool status){
isFiltterrr = status;
notifyListeners();
}
}
这是我的main.dart
class Myproject extends StatefulWidget {
const Myproject ({Key? key}) : super(key: key);
@override
_Myproject State createState() => _Myproject State();
}
class _Myproject State extends State<Myproject > {
@override
Widget build(BuildContext context) {
return
Provider(
create: (BuildContext context) {
return ProviderForFiltter();
},
child: const MaterialApp(
debugShowCheckedModeBanner: false,
home: WelcomeScreen()
),
),
);
}
}
这是我的Stful 小部件
ProviderForFiltter? isF ;
@override
void initState() {
super.initState();
// i tried this but it always give me errors that is isF null value
WidgetsBinding.instance?.addPostFrameCallback((timeStamp) {
isF = context.read<ProviderForFiltter>();
});
// also itried this but it don't work
isF = Provider.of<ProviderForFiltter>(context, listen: false);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Text('change'),
)
}
}
事实上我需要使用它的布尔值作为消费者的条件并改变它
我希望对大家有帮助
【问题讨论】:
-
您是否尝试过pub.dev/packages/provider 页面中的
I have an exception when obtaining Providers inside initState. What can I do?部分?