2017-11-25 19 views
0

私は高低を検索しました。しかし、私はどのようにconvertToRawconvertFromRawに見つかりました。それは素晴らしいですが、GraphQLを使って生データを送る方法は?GraphQLを使用してDraft.jsデータを保存するには

オプション1:

まず最初はただ、JSON.stringify(..)を使うGraphQLStringを作成し、それを送信し、頭に浮かびました。ブーム!完了!まあ...そうではありません。私はそのルートを行った場合、GraphQL値は二重引用符であることを期待してIオプション2

などunexpected token 'に関するエラーました:

は、それを送信し、GraphQLInputObjectTypeと。それはうまくいくでしょうが... blocks配列内のすべてのキーを書き出す必要があります。いいえ!私の第六感は、より良い方法がJSON.stringify(..)であると私に伝えていますが、どうですか?

ここでデータが使用convertToRawでどのように見えるかを視覚的に表現だ: enter image description here

GraphQLStringに渡された文字列:

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

「構文エラーGraphQL要求(29:36)予想:、

なし:

{"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

「予期しないトークンなどについてエラーが発生しました」それはどこで起こるのですか?あなたはあなたのパスjson文字列をgraphQLクライアントにどのようにフルコードを表示できますか? –

+1

こんにちは、私が戻ったときに私は編集を行います。最初からそれをしていたはずです。申し訳ありません – Sylar

+1

@MikhailShabrikovこんにちは。私は今編集を作った – Sylar

答えて

1

私はいくつかの研究の後でこの質問に答えることができると思います。この回答はatob() and btoa()を使用しています。

すなわち、GraphQLString's引数に値を渡すには、content

  1. convertToRaw
  2. JSON.stringify(とDraft.js変換)結果
  3. 利用btoa()

そのようにすれば、非常に長い文字列で終わるでしょう:Q29udGVudFN0YXRlIHsgImVudGl0eU1hcCI6IFtvYmplY3QgT2JqZWN0...etc

デコードするには、atob()、JSON.parse()then convertFromRaw`を使用します。おそらくもっと簡単な方法かもしれませんが、今のところこれが機能します。これらのステップを減らすことができると確信しています。

関連する問題