我在一个电子React应用程序里有一个文本输入框。alert()用于在给定特定条件下通过更改状态的警报。但是在抛出警报之后,一个完全独立的表单中的输入文本字段将不允许用户在不单击退出应用程序然后再返回的情况下输入数据。
我目前有一个工作,这是抛出警报使用电子的ipcRenderer和ipcMain,但风格不匹配以及与其余的应用程序。有没有一种方法可以处理windows.alert(),而不会阻止在文本输入字段中输入数据?什么原因导致windows.alert()阻止在文本输入中输入数据?
之前的代码示例:
function doSomething(value) {
let array = otherArray;
if (array.length == 0) {
//The below was blocking typing into <input> in a completely separate form.
window.alert("Please add expected value first")
}
}
使用来自preload.js和ipcMain的ipcRenderer处理代码:
function doSomething(value) {
let array = otherArray;
if (array.length == 0) {
window.api.send("send-alert", "Please add expected value first")
}
}
//in main.js
ipcMain.on("send-alert", (event, incomingMessage)=> {
let options = {
message: incomingMessage
}
dialog.showMessageBox(mainBrowserWindow, options)
}
2条答案
按热度按时间eyh26e7m1#
使用toastr绕过这个。
标签:https://github.com/CodeSeven/toastr
触发错误或警告消息来代替window.alert()方法。即:
toastr.warning()
或toastr.error()
wooyq4lh2#
是的,我也有同样的问题,但是window.alert()在Linux应用程序中工作,而不是在windows操作系统中,你可以去任何其他的react库,比如sweetalert2,react。现在重建你的React和Electron应用程序,你会看到,你的应用程序正常工作... a