【发布时间】:2022-04-05 19:51:12
【问题描述】:
preload.js
const { readFile, readFileSync, writeFileSync } = require('fs')
const { contextBridge, ipcRenderer, ipcMain } = require('electron')
require('electron')
contextBridge.exposeInMainWorld('config', {
readConfig: () => {
const data = readFileSync(__dirname + '/config.json', 'utf-8')
return data
},
writeJson: (data) => {
writeFileSync(__dirname + '/config.json', data)
},
ipc: ipcRenderer,
})
React App.js
导致 Electron 刷新的函数
const onNoteAdd = () => {
const newNote = {
description: '',
id: Noteid,
}
const newArr = arr.concat(newNote)
writeJson(JSON.stringify(newArr))
setArr(newArr)
setNoteId((Noteid) => Noteid + 1)
}
Electron.js
app.on('ready', () => {
createWindow()
const ipc = ipcMain
ipc.on('message', (event, data) => {
console.log(data)
fs.writeFileSync(__dirname + '/config.json', data)
})
})
我想用 ipcMain 从 App.js 中的 ipcRender 接收到的 JSON 覆盖公用文件夹中的 JSON
但问题是当 writeFileSync 工作时,
以某种方式刷新电子并跳过覆盖
我尝试使用 App.js 覆盖 preload.js 文件中的“writeJson”函数,并在 App.js 中使用 ipc.send 并在 Electron.js 中接收并写入 json,但没有任何效果。
电子版是12.0.7
【问题讨论】:
标签: javascript node.js reactjs electron