Электрон новое окно - PullRequest
       0

Электрон новое окно

0 голосов
/ 03 марта 2020

Я пытаюсь открыть новое окно с указанным c маршрутом, но кажется, что страница маршрута загружена неправильно. Новое электронное окно открывается из FrmApprovalMain. js, а новое окно следует открывать с помощью FrmPOdet. js Однако при его открытии возникает ошибка, которая, как представляется, возникает в вызывающем файле (FrmApprovalMain. js ) но это не имеет ничего общего с новым окном после его открытия… MainWIndow в порядке, но новое открытое окно выдает ошибку (FrmPOdet. js имеет только одну кнопку).

Это ошибка, которую я получаю в новом окне (mainWindow без ошибок):

    Module../src/FrmApprovalMain.js
G:/Electron/poa/src/FrmApprovalMain.js:10
   7 | import NumberFormat from 'react-number-format';
   8 | import ModalMessage from './componentAPI/ModalMessage'
   9 | import SpinnerCentre from './componentAPI/SpinnerCentre'
> 10 | const electron = window.require('electron');
  11 | const ipcRenderer = electron.ipcRenderer;
  12 | 
  13 | 

, и это мои заявления в приложении:

Оператор открытия новое окно (FrmApprovalMain. js)

  const electron = window.require('electron');
    const ipcRenderer = electron.ipcRenderer;
[...]
     openPO(){
        console.log("Open new window")
        ipcRenderer.send('openNewPO', "S");
        console.log("New Window Opened")
      }

В электронном режиме я создал новый прослушиватель IP C, где я создаю новое окно:

ipcMain.on('openNewPO',(events,args) =>{
  const win = new BrowserWindow({
    parent: mainWindow,
    height: 600,
    width: 800, 
    show: true, 
  });
  win.removeMenu();
  win.loadURL("http://localhost:3000/podet");
});

Маршрутизатор этот

import App from './App'; 
import FrmPODet from './FrmPODet'

    const Router = () => (
        <HashRouter>
            <Switch>
                <Route exact path = "/podet" component = {FrmPODet} />
                <Route exact path = "/" component = {App} />

            </Switch>
        </HashRouter>
    ); 

FrmPODet имеет одну единственную кнопку

1 Ответ

1 голос
/ 03 марта 2020

Наконец-то решена, проблема была в использовании HashRouter против BrowserRouter. HasRouter отлично работает для клиентского приложения (производство), но в разработке не работает (подход на стороне сервера, когда в разработке), поэтому мне пришлось использовать различные операторы для разработки и производства.

Мой маршрутизатор. js теперь выглядит так:

const Router = () => {
    if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development'){
        return (
            <BrowserRouter>
                <Switch>
                    <Route exact path = "/" component = {App} />
                    <Route exact path = "/Podet" component = {FrmPODet} />
                </Switch>
            </BrowserRouter>)
    } else {
        return (
            <HashRouter>
                <Switch>
                    <Route exact path = "/" component = {App} />
                    <Route exact path = "/Podet" component = {FrmPODet} />
                </Switch>
            </HashRouter>)
    }
}; 

и мой loadURL:

  win.loadURL(
        isDev
        ? "http://localhost:3000/Podet"
        : `file://${path.join(__dirname, "../build/index.html#Podet")}`
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...