2017-02-01 4 views
1

Ich habe ein Objekt wie folgt:Javascript - schieben kann nicht auf innere Objekt

var chosen=[{nrChart:1, chosenGraphics:[]}]; 

mit dem ich electron-window-manager verwenden, um ein Shared wie so zu erstellen:

windowManager.sharedData.set("chosen",chosen); 

Danach hole ich, dass shared in anderen JS-Datei wie folgt:

that.exp = windowManager.sharedData.fetch("chosen"); 

so weit, so gut. Das Problem ist jetzt, dass ich that.exp.push(1) tun kann, aber nicht that.exp[0].chosenGraphics.push(1), die die neue Länge zurückgibt, aber das Array bleibt gleich.

Was passiert?

Struktur des Objekts that.exp zur Klarstellung:

Structure of the object that.exp for clarification

** Edit: chosenGraphics: Array 1 erweitert ** enter image description here

+0

Post Code zu machen war! – Pointy

+0

Haben Sie versucht, die freigegebenen Daten nach dem Push erneut einzustellen? Es ist möglich, dass es nicht automatisch aktualisiert wird. – Seiyria

+1

Erweitern Sie "selectedGraphics: Array [1]" Knoten – Igor

Antwort

0

Ich habe nicht herausfinden, warum ich nicht zu chosenGraphics schieben könnte, aber ich fand eine Lösung aus, die einen Klon des Objekts mit JSON.parse(JSON.stringify(windowManager.sharedData.fetch("chosen")));

0

Es sieht aus wie Sie chosenGraphics definiert mehrere haben Zeiten in Ihrem Objekt that.exp[0]. Es gibt ein Array namens chosenGraphics, und es gibt zwei Funktionen namens chosenGraphics. Wenn Sie aufrufen, versucht es wahrscheinlich, push auf einer der Funktionen auszuführen, die eine push Eigenschaft oder Methode nicht haben.

+0

Ty für die Antwort. Die Funktionen set und get werden nicht von mir ausgeführt, sondern automatisch, wenn ich 'windowManager.sharedData.set (" ausgewählt ", ausgewählt);'. Wie kann ich das lösen? –

+0

Wenn die Funktionen keine Push-Methode haben, würde ich einen Fehler bekommen. Stattdessen bekomme ich eine Ganzzahl, die die neue Länge von 'selectedGraphics' sagt. –

+0

Wie sieht Ihr roher JSON aus 'windowManager.sharedData.fetch' aus? –

Verwandte Themen