2017-11-25 2 views
0

Ich habe High und Low gesucht. Aber, ich habe gefunden, wie zu convertToRaw und convertFromRaw. Das ist toll, aber wie kann man die Rohdaten mit GraphQL senden?So speichern Draft.js Daten mit GraphQL

Option 1:

Das erste, was in den Sinn kam, JSON.stringify(..) nur verwenden, eine GraphQLString erstellen und versenden. Boom! Erledigt! Nun ... nicht so. Wenn ich diesen Weg ging, erwartet GraphQL der Wert in doppelte Anführungszeichen zu sein, und ich habe Fehler über unexpected token ' usw.

Option 2:

es senden und mit GraphQLInputObjectType. Das würde funktionieren, aber ... Sie müssen alle diese Schlüssel im Array ausschreiben. Nee! Mein 6. Sinn sagt mir, es gibt einen besseren Weg mit JSON.stringify(..), aber ... wie?

Hier ist eine visuelle Darstellung von dem, was die Daten sieht aus wie gebrauchte convertToRaw: enter image description here

String, der an GraphQLString übergeben wurde:

"{"entityMap":{},"blocks":[{"key":"7iq9s","text":"This is the type of text to pass to db via GraphQL","type":"unstyled","depth":0,"inlineStyleRanges":[],"entityRanges":[],"data":{}}]}" 

„Syntaxfehler GraphQL Anfrage (29:36) Erwartet:,

Ohne convertToRaw:

{"entityMap":{},"blockMap":{"bk8ro":{"key":"bk8ro","type":"unstyled","text":"This is the type of text to pass to db via GraphQL","characterList":[{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null},{"style":[],"entity":null}],"depth":0,"data":{}}},"selectionBefore":{"anchorKey":"bk8ro","anchorOffset":0,"focusKey":"bk8ro","focusOffset":0,"isBackward":false,"hasFocus":true},"selectionAfter":{"anchorKey":"bk8ro","anchorOffset":50,"focusKey":"bk8ro","focusOffset":50,"isBackward":false,"hasFocus":true}} 
+0

"Ich habe Fehler über unerwartete Token 'usw." Wo ist es passiert? Können Sie den vollen Code zeigen, wie Ihre JSON-Zeichenfolge an den graphQL-Client übergeben wird? –

+1

Hi sicher, wenn ich zurück komme, werde ich bearbeiten. Hätte das von Anfang an tun sollen. Entschuldigung – Sylar

+1

@MichailShabrikov Hallo. Ich habe jetzt die Bearbeitung – Sylar

Antwort

1

Ich denke, dass ich diese Frage nach etwas Forschung beantworten kann. Diese Antwort verwendet atob() and btoa().

Um einen Wert einer GraphQLString's args geben, das heißt content:

  1. Konvertieren Draft.js mit convertToRaw
  2. JSON.stringify() das Ergebnis
  3. Verwendung btoa()

Auf diese Weise enden Sie mit einer sehr langen Zeichenfolge: Q29udGVudFN0YXRlIHsgImVudGl0eU1hcCI6IFtvYmplY3QgT2JqZWN0...etc

Zum Dekodieren verwenden Sie atob(), JSON.parse() then convertFromRaw`. Es gibt vielleicht einen einfacheren Weg, aber im Moment funktioniert das. Ich bin sicher, dass diese Schritte reduziert werden können.