[Обновление]: перед перезагрузкой за долю секунды предупреждение [нарушение] 'щелчок' потребовалось xx мс, чтобы показать. (выяснено из записи экрана)
Я использую Electron с React. Для связи с основным процессом (Electron) и средством визуализации (React) я использую модули ipcRederer и ipcMain и использую ловушки для загрузки изображения на веб-страницу.
Модуль ipcMain порождает процесс python и его результат ( местоположение изображения) отправляется обратно, чтобы затем загрузить изображение, созданное сценарием python, указав местоположение
Простой поток данных: React -> Hooks -> ipcRender -> ipcMain -> spawn python process -> ip c Main -> ipcRender -> Hooks (useState)
Когда я его выполняю, он показывает изображение, но немедленно перезагружает веб-страницу. Углубившись, я обнаружил, что проблема порождает процесс python. Это перезагрузка страницы.
main. js (электрон):
const { ipcMain } = require('electron');
ipcMain.on('synchronous-message', (event, arg) => {
//.................Code to run a Python script...............
var python = require('child_process').spawn('python', ['./public/test.py']);
python.stdout.on('data',function(data){
//send the output of python to React
event.returnValue = (data.toString('utf8'));
});
//.................................
})
app. js (реакция):
const { ipcRenderer } = window.require('electron');
function Home(){
const [graph, setGraph] = useState("");
function test(){
setGraph(ipcRenderer.sendSync('synchronous-message', 0));
}
return (<div className="Home">
<div onClick={test}>CLick Me</div>
<div id="graph">
<img src={graph} />
</div>
</div>)
}
графическая переменная содержит возвращенное значение из сообщения ipcMain