【发布时间】:2021-02-28 12:17:38
【问题描述】:
您好,我有一个小部件构建(BuildContext 上下文){}。'我尝试在外部初始化提供程序并使用它,但出现以下错误:
试图从小部件树的外部侦听提供者公开的值。
这可能是由调用的事件处理程序(如按钮的 onPressed)引起的
Provider.of 不通过listen: false。
要修复,请编写: Provider.of(context, listen: false);
它不受支持,因为可能会毫无意义地重建与 事件处理程序,当小部件树不关心值时。
使用的上下文是:LoginSelectPage(dependencies: [MediaQuery], state: _LoginSelectPageState#0e08d)
@override
void initState() {
// TODO: implement initState
//registrationBloc = BlocProvider.of<RegistrationBloc>(context);
super.initState();
(() async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
bool res = prefs.getBool('autoLoginKey');
SocketProvider provider = Provider.of<SocketProvider>(context);//This is where it matters.
}
在这种情况下,我们如何初始化提供程序以使用它?
【问题讨论】: