我想从回调中显示小部件,但似乎找不到上下文并给出此错误:
E / flutter(22300):[错误:flutter / lib / ui / ui_dart_state.cc(166)]未处理的异常:NoSuchMethodError:方法'findAncestorStateOfType'被调用为null。 E / flutter(22300):接收者:null E / flutter(22300):尝试调用:findAncestorStateOfType()
static BuildContext _context;
static Future<void> callback() async {
print('Alarm fired!');
// Get the previous cached count and increment it.
final prefs = await SharedPreferences.getInstance();
int currentCount = prefs.getInt(countKey);
Navigator.push(
_context,
MaterialPageRoute(
builder: (context) => AlarmScreen(
id: currentCount,
),
),
);
await prefs.setInt(countKey, currentCount + 1);
// This will be null if we're running in the background.
uiSendPort ??= IsolateNameServer.lookupPortByName(isolateName);
uiSendPort?.send(null);
}
@override
Widget build(BuildContext context) {
setState(() {
_context = context;
});