2017-07-25 4 views
1

アップロードからデータを取得するReactアプリケーションがあります。私は、データ(主にCSVの)を行ごとに私のAPIに送りたいと思っています。問題は、私が正しい値を得ることができないということです。React with FileReaderで正しいフェッチ本文は何ですか

const uploadLocalFile = (file) => (dispatch) => { 
const reader = new FileReader() 
    reader.onload = evt => { 
     fetch("some/api/here", 
      { 
       credentials: "same-origin", 
       method: "POST", 
       body: //file, evt.target.result ?? <--- 
      }) 
     } 
    reader.readAsText(file) 
    alert("done.") 
} 

fileはファイル全体、evt.target.resultは反応に許可されていないのですか?フェッチによってevt.currentTargetが禁止されていますか?

+0

これはReactと何が関係していますか? –

+1

'fetch'はPromiseの権利を返しますか?私はあなたが戻り値で何かをするのを見ません。 https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch – Halcyon

+0

https://en.wikipedia.org/wiki/Byte_order_markをご覧ください。 – K3N

答えて

0

「反応しない」とはどういう意味ですか?この関数をファイル入力用のハンドラとして渡すと、次のようになります。

handleSelectFile = (event) => { 
    const file = event.currentTarget.files[0] 
    const reader = new FileReader() 
    reader.onload = (event) => { 
    const content = event.target.result 
    // do whatever you want do do with `content` 
    } 
    reader.readAsText(file) 
} 
関連する問題