我正在用ReactJS制作一个基本的Web应用程序来创建推送通知。 我想让用户可以通过单击按钮来手动注册服务工作者。但是什么也没发生(控制台中没有成功的消息)。我在某个地方犯了错误吗?
在标准js文件中,用于注册Service Worker的代码有效(尽管没有按钮),但在react文件中却无效。
注册服务人员的代码:
以及按钮上的事件监听器:
谢谢!
答案 0 :(得分:1)
我看到的主要问题是将EventListener附加到SELECT *, date_part('month', terminated_datetime)
FROM employees
WHERE date_part('month', terminated_datetime) = 12;
上,该监听器将在“加载”时执行。由于您可以单击按钮,因此很可能已经触发了此事件,因此未加载软件。
尝试删除事件处理程序部分以直接调用register函数。
然后看起来像这样:
window
我看到的另一个问题是您尝试通过直接分配状态来设置状态。在做出反应时,您不应访问那样的状态,而应这样调用function registerSW() {
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('sw.js')
//...
}
}
:
this.setState