я пытаюсь добавить массив из внешнего источника в preload.js в электроне
// Import the necessary Electron components.
const contextBridge = require("electron").contextBridge;
const ipcRenderer = require("electron").ipcRenderer;
// const json = require("./html/nature/nature.json")
var remote = require("electron").remote;
var electronFs = require("fs");
let data = JSON.parse(electronFs.readFileSync("./html/nature/nature.json"));
let data2 = Object(data.content_card);
let result = data2.map((x) => x.message);
console.log(result);
let arr = ["message:home"]
let arr2 = result;
Array.prototype.push.apply(arr, arr2);
console.log(arr)
const ipc2 = {
render: {
// From render to main.
send: arr,
// From main to render.
receive: [],
// From render to main and back again.
sendReceive: [],
},
};
// Exposed protected methods in the render process.
contextBridge.exposeInMainWorld(
// Allowed 'ipcRenderer' methods.
"ipcRender",
{
// From render to main.
send: (channel, args) => {
let validChannels = ipc2.render.send;
if (validChannels.includes(channel)) {
ipcRenderer.send(channel, args);
}
},
// From main to render.
receive: (channel, listener) => {
let validChannels = ipc2.render.receive;
if (validChannels.includes(channel)) {
// Deliberately strip event as it includes `sender`.
ipcRenderer.on(channel, (event, ...args) => listener(...args));
}
},
// From render to main and back again.
invoke: (channel, args) => {
let validChannels = ipc2.render.sendReceive;
if (validChannels.includes(channel)) {
return ipcRenderer.invoke(channel, args);
}
},
}
);
Проблема в том, что оно как-будто не передает значения внутрь, если я вставляю напрямую
let arr = ["message:home"]
let arr2 = ["message:people"];
Array.prototype.push.apply(arr, arr2);
то все работает, но я не могу подгрузить набор из внешнего источника в моем случае json файла, что я делаю не так?