Electron NativeTheme:无法设置未定义的 属性 'themeSource'
Electron NativeTheme: Cannot set property 'themeSource' of undefined
目前我正在尝试在我的电子应用程序中设置一个 system/light/dark 模式切换器。对于 electron 应用程序,我使用了 electron-vue 库并将 electron 版本升级到 7.3.2
.
所以现在我想,我可以使用 electron 中新的 API nativeTheme 来创建这个新功能。但是我现在遇到的问题是 nativeTheme 是未定义的,当我导入它时:
TypeError: Cannot set property 'themeSource' of undefined
at VueComponent.theme (Settings.vue?e12e:62)
at Watcher.run (vue.esm.js?a026:4577)
at flushSchedulerQueue (vue.esm.js?a026:4319)
at Array.eval (vue.esm.js?a026:1989)
at flushCallbacks (vue.esm.js?a026:1915)
现在代码如下所示:
import { nativeTheme } from "electron";
// ...
watch: {
theme(val) {
localStorage.setItem("theme", val);
nativeTheme.themeSource = val;
}
}
我也已经尝试使用像
这样的requirejs变体
const { nativeTheme } = require("electron");
但我显然得到了同样的错误。当然,我已经在搜索这个主题 and here 但两者都没有解决我的问题。有什么我错过的吗?
此外,我还在这里发送 package.json 版本:
nativeTheme
是一个主进程模块。您不能直接从渲染器进程导入它。您必须依赖 IPC 调用或 Electron 的 remote
模块才能在渲染器进程中使用它。
const { nativeTheme } = require("electron").remote;
目前我正在尝试在我的电子应用程序中设置一个 system/light/dark 模式切换器。对于 electron 应用程序,我使用了 electron-vue 库并将 electron 版本升级到 7.3.2
.
所以现在我想,我可以使用 electron 中新的 API nativeTheme 来创建这个新功能。但是我现在遇到的问题是 nativeTheme 是未定义的,当我导入它时:
TypeError: Cannot set property 'themeSource' of undefined
at VueComponent.theme (Settings.vue?e12e:62)
at Watcher.run (vue.esm.js?a026:4577)
at flushSchedulerQueue (vue.esm.js?a026:4319)
at Array.eval (vue.esm.js?a026:1989)
at flushCallbacks (vue.esm.js?a026:1915)
现在代码如下所示:
import { nativeTheme } from "electron";
// ...
watch: {
theme(val) {
localStorage.setItem("theme", val);
nativeTheme.themeSource = val;
}
}
我也已经尝试使用像
这样的requirejs变体const { nativeTheme } = require("electron");
但我显然得到了同样的错误。当然,我已经在搜索这个主题
此外,我还在这里发送 package.json 版本:
nativeTheme
是一个主进程模块。您不能直接从渲染器进程导入它。您必须依赖 IPC 调用或 Electron 的 remote
模块才能在渲染器进程中使用它。
const { nativeTheme } = require("electron").remote;