Как использовать диалоги использования в среде электрон + реакция? - PullRequest
0 голосов
/ 08 апреля 2019

( клонировать репозиторий и попробовать его )

Я работаю над настольным приложением, используя node, create-реакции-app и электрон.Следующая строка, рекомендуемая здесь

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

при добавлении к моему store реагирующему компоненту (и, следовательно, не в основном электронном процессе), вызывает следующую ошибку:

TypeError: fs.existsSync is not a function
getElectronPath
F:/freelance/repos/creative-ontology-editor/node_modules/electron/index.js:8
   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) {

Я полагаю, это потому, что React или create-Reaction-app специально блокируют / обнуляют определенные модули node.js, такие как fs, но я могу ошибаться.Обратите внимание, что эта ошибка возникает внутри модуля electron, когда я включаю вышеприведенную строку, а не в свой собственный код.

Моя цель состоит в том, чтобы мое настольное приложение могло сохранять и загружать файлына машине пользователя, как в Word или Excel.

Я назвал const fs = window.require('fs'); в моем компоненте реакции, что, я думаю, я не должен делать, но также, поскольку это вфактический electron модуль index.js, я убедился, что он также вызывает его, что он делает: var fs = require('fs').Не было никаких изменений в поведении, когда я переключил свой вызов в компоненте реагирования на const fs = window.require('fs').

Я также удостоверился, что для webPreferences.nodeIntegration установлено значение true в моем основном электронном процессе, но безрезультатно.

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