0

我正在尝试实现本地通知,但我面临NoSuchMethodError,我已经调试了代码并找到了问题,但没有找到正确的解决方案。我已经创建了通知管理器类,我在 AddNotification.dart Stateful 类中这样称呼它

 final NotificationManager manager;
  const AddNotification(this.manager);

然后在它的 State 类中这样调用它:

widget.manager.showNotificationDaily(1, "Asar", "isNotification", hour, minute);

在调用 AddNotification 的上一个类中,我发送了一个像这样的通知管理器对象。

class AllSurah extends StatefulWidget {
  NotificationManager manager;
  @override
  _AllSurahState createState() => _AllSurahState();
}
    Navigator.push(
                    context,
                    MaterialPageRoute(builder: (context) => AddNotification(widget.manager)),
                  );

我已经调试了代码,发现管理器正在从传递 NotificationManger 对象的上一个类传递 null。我该如何解决这个问题?

4

2 回答 2

1

只需尝试以下代码:

 NotificationManager manager = new NotificationManager();
于 2021-09-16T12:13:01.530 回答
0

问题不在于您没有将变量传递给对象。相反,问题是manager在您调用showNotificationDaily它时该变量为空,这会引发您看到的异常。

您可以使用Null Aware Operator ( ? )避免Null 异常,如下所示:

widget.manager?.showNotificationDaily(1, "Asar", "isNotification", hour, minute);

但这只会避免Exception被抛出。你应该真正调查为什么这个变量被传递为null

于 2021-09-16T12:10:07.980 回答