Flutter运行一次有上下文可用的方法?

时间:2019-03-17 22:20:21

标签: flutter

是否有任何策略可以让您的代码仅运行一次(如initState())并具有可用的上下文(以使用.of(context))。例如,我正在获取Bloc.of(context),我想订阅它(做一些事情,例如显示警报对话框等)。订阅build()意味着多次订阅

我可以使用didChangeDependencies()并设置订阅?? = bloc.listen,但是我想知道是否还有另一种好的策略。

1 个答案:

答案 0 :(得分:0)

还有另一种方法,通过添加“ bool”变量并将其在“ initState”中设置为“ false”,然后命名为(isExec)

2-在构建方法中检查“ isExec”是否== false,然后运行您想要对其执行一次的代码(警报,订阅等)

3-将“ isExec”更改为true(isExec = true);

现在,如果您的应用程序状态更改了构建方法,请避免在if语句中使用该代码