首页 > 解决方案 > 电子 ipcRenderer 一次传递一个字母的字符串

问题描述

我正在尝试使用 ipc 进程将字符串从渲染传递到 main。出于某种原因,它a)重复触发,b)一次只发送一个字母,即使我可以明确地看到整个字符串在发送之前设置。到底发生了什么,我如何将其压缩回一个包含正确字符串的调用?

渲染器:

const electron = window.require('electron');
.
.
.
//by now username = "demouser"
electron.ipcRenderer.once('verifySubscriptionResponse', (event, token, errorMessage) => {
    console.log('handleLoginAttempt');
    console.log('username variable:' + username);
    electron.ipcRenderer.send("proceedToApp", username);
}

主要的:

const { ipcMain } = require('electron');

ipcMain.on("proceedToApp", (event, username) => {
    console.log('passed in username:' + username);
    global.loggedInUser = username;
    console.log('set username:' + global.loggedInUser)
}

在渲染器中,我得到了简单的输出

> handleLoginAttempt
> usernameVariable: demouser

但主要是,我得到这个输出:

passed in username:d
set username:d
passed in username:de
set username:de
passed in username:dem
set username:dem
passed in username:demo
set username:demo
passed in username:demou
set username:demou
passed in username:demous
set username:demous

编辑:这个谜题的一个线索,用户名是一个状态挂钩变量,我用一个文字字符串换掉它,它现在发送整个字符串,但仍然发送了几次。所以这个问题的一半可能是电子不能很好地与反应钩子逻辑配合使用。

标签: electronipcrenderer

解决方案


推荐阅读