我正在编写首选项视图 GNOME shell 扩展和使用该imports.lang
函数以面向对象的方式编写应用程序时面临的问题。
const Gtk = imports.gi.Gtk
const Lang = imports.lang
Gtk.init(null)
const MyWindow = new Lang.Class({...})
第一次打开首选项窗口有效,但随后的窗口会引发以下错误:Error: Type name Gjs_MyWindow is already registered
. 第一次关闭窗口时,我收到此错误:TypeError: prefsModule.init is not a function
.
以下更具命令性的代码有效:
const Gtk = imports.gi.Gtk
Gtk.init(null)
const window = new Gtk.Window({ type: Gtk.WindowType.TOPLEVEL })
根据抛出的错误,我的猜测是该类正在被重新定义。如何避免重新定义并接收定义的类?(有没有我可以参考的文档?)