Диалог открытия файла из React Component с использованием Electron - PullRequest
0 голосов
/ 22 ноября 2018

Так что я знаю, не реагируя на поток рендеринга, я могу сделать это, чтобы открыть диалоговое окно файла.

const {dialog} = require('electron').remote
dialog.showOpenDialog({properties: ['openFile']}))

Я пытаюсь использовать реагировать и изучать рабочие процессы React & Electron.Выполнение запроса дает мне следующую ошибку:

TypeError: fs.existsSync is not a function
getElectronPath
   5 | var pathFile = path.join(__dirname, 'path.txt');
   6 | 
   7 | function getElectronPath() {
>  8 |   if (fs.existsSync(pathFile)) {
   9 |     var executablePath = fs.readFileSync(pathFile, 'utf-8');
  10 | 
  11 |     if (process.env.ELECTRON_OVERRIDE_DIST_PATH) {
View compiled
(anonymous function)
  18 |   }
  19 | }
  20 | 
> 21 | module.exports = getElectronPath();
View compiled

Не уверен, что я могу сделать, чтобы это сработало.Должно быть довольно простым приложением для рисования на холсте, но мне нужно перечислить изображения в папках и предоставить приложению возможность диалога с файлами.Есть идеи, как решить эту проблему?

1 Ответ

0 голосов
/ 26 ноября 2018

Я нашел решение.Вы можете запустить preload.js в окне при создании, а затем вызывать такие элементы, как объекты javascript.

Нашел эту проблему на github https://github.com/electron/electron/issues/9920

  mainWindow = new BrowserWindow({
    width: 800, 
    height: 600,
    webPreferences: {
      nodeIntegration: false,
      preload: __dirname + '/preload.js'
    }
  });

Preload.js

const { dialog } = require('electron').remote.dialog;
window.electron = {};
window.electron.dialog = dialog;

Тогда все, что я хочу загрузить в окно, я могу просто добавить к объекту window.electron и вызвать его без проблем.Прекомпилятор React - это больше всего вопрос с электронами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...