electron - 电子 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
编辑:这个谜题的一个线索,用户名是一个状态挂钩变量,我用一个文字字符串换掉它,它现在发送整个字符串,但仍然发送了几次。所以这个问题的一半可能是电子不能很好地与反应钩子逻辑配合使用。
解决方案
推荐阅读
- prolog - 如何在 Prolog 中使两个列表相交
- swift - 使用协议将数据从一个 vc 传递到另一个 vc 的问题
- spring - 日期分钟子集上的 Spring mongoDB 聚合组
- c++ - 如何通过访问对象来计算二维向量的总和
- java - 如何让 java 程序与不同的 java 程序通信
- python - 使用 Python Click 测试参数
- cuda - CUDA 数组加法和块大小
- redis - 无法使用 Airflow Celery worker 对 redis 进行身份验证
- sdk - mCurrentFocus 和 mFocusedApp 不返回详细信息
- css - img 在悬停时“粘”在分区上。如何在保持关系的同时使其出现在其他地方