Creating part of file upload in Electron (v22).
when going from render.ts to preload.ts to background.ts
Uncaught(inpromise)Error:An object could not be cloned.
occurs in the render.ts part.
I don't know the cause, and I can't predict which part is the problem, so I can't fix it.
I would appreciate it if you could advise me on the point of the problem, the cause, and, if possible, how to deal with it.
holder.addEventListener('drop', (event)=>{
event.preventDefault();
event.stopPropagation();
const files = event.dataTransfer.files;
const file=files[0];
window.electronAPI.uploadFile(file)
// ↑ Uncaught (inpromise) Error: An object could not be cloned.
holder.innerText="Processing..."
});
const{contextBridge, ipcRender}=require('electron')
contextBridge.exoseInMainWorld('electronAPI',{
// @ts-ignore
uploadFile:(file)=>ipcRenderer.invoke('file:upload',file)
})
async function handleFileUpload(event,file){
let text = wait fs.readFileSync(file.path, 'utf8');
json=jsonFromText(text); // json is a global variable
}
ipcMain.handle('file:upload', handleFileUpload')
I installed a breakpoint in background.ts using phpstorm.
It doesn't stop, so I don't think I've reached background.ts.
Thank you for your cooperation.
javascript electron
ipcRender.invoke()
copies arguments using structured replication algorithm, so the File
object is not covered.Wouldn't it be better for the renderer to load it into TypedArray
before sending it?
© 2024 OneMinuteCode. All rights reserved.