Electron NativeTheme: невозможно установить для свойства themeSource значение undefined - PullRequest
0 голосов
/ 07 августа 2020

в настоящее время я пытаюсь настроить переключатель режима система / свет / темнота в своем электронном приложении. Для электронного приложения я использовал библиотеку electronic- vue, а затем обновил электронную версию до 7.3.2.

Итак, теперь я подумал, что могу использовать новый API nativeTheme из electronic для создания эта новая функция. Но проблема, которую я теперь получаю, заключается в том, что 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;
  }
}

Я также уже пытался используйте вариант require js, например

const { nativeTheme } = require("electron");

Но, очевидно, я получаю ту же ошибку. Я уже искал эти топи c, конечно, здесь и здесь , но оба не решили мою проблему. Есть что-то, что я пропустил?

Кроме того, я также отправляю сюда посылку. json с версиями: пакет. json - devDependencies

1 Ответ

2 голосов
/ 07 августа 2020

nativeTheme - это основной технологический модуль. Вы не можете импортировать его напрямую из процесса рендеринга. Вы должны полагаться на вызовы IP C или модуль Electron remote, чтобы использовать его в процессе рендеринга.

const { nativeTheme } = require("electron").remote;
...