我使用imports.lang
函数以面向对象的方式编写应用程序时,正在编写首选项视图以及GNOME外壳扩展和面临的问题。如何检查Gjs类是否已被定义?
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 })
基础上所产生的错误,我的猜测是,该类正在被重新定义。我怎样才能避免重新定义并以其他方式接收定义的类? (有没有我可以参考的文档?)