2016-10-23 7 views
2

反応ネイティブのアプリを投げるrelayjsの変異から複数のファイルをダウンロードする必要があります。ファイルの配列は次のようになります。relayjsのネイティブの反応でgetFiles()

[ {uri: 'file:///path/to/file.jpg', mime: 'image/jpg'}, {uri: 'file:///path/to/file2.jpg', mime: 'image/jpg'}, ]

私は、変異のためgetFiles()FUNCを見つけましたが、私はそれが返すデータのどのような形式を理解していませんか?

+0

getFilesは、オブジェクト、{ 'FILE1' を受信通常の変異と突然変異を完了する必要があり

export default class UploadUserProfileMutation extends Relay.Mutation { ... getFiles() { return this.props.files; } ... } 

:あなたの突然変異で

getSelectedImage = (images) => { const image = images[0]; const files = { [image.filename]: { uri: image.uri, name: image.filename, }, }; const mutation = new UploadUserProfileMutation({ files, }); this.props.relay.commitUpdate(mutation, callbacks); }; 

方法getFilesを追加します。 file1}はファイルタイプです。リレードキュメントを確認する:https://facebook.github.io/relay/docs/api-reference-relay-mutation.html#getfiles –

+0

反応ネイティブのファイルタイプとは何ですか? – Tony

+0

https://developer.mozilla.org/en-US/docs/Web/API/File –

答えて

1

これは私がそれを解決してきた方法です:

私はカメラロールから画像を取得するには、このパッケージhttps://github.com/jeanpan/react-native-camera-roll-pickerを使用:

あなたがテストするためにそれを使用することができ、あなたのレンダリングにこれを追加します。

<CameraRollPicker 
      callback={this.getSelectedImage} 
      imagesPerRow={4} 
      imageMargin={1} 
      maximum={1} 
     /> 

これは私のgetSelectedImageの実装です。イメージを1つ送信するだけですが、複数のイメージを送信できます。ファイルは、値がイメージのオブジェクトです。 FILE1、 'FILE2':あなたは

+0

私の 'getFiles()'は 'getFiles(){ return { ファイル:this.props.photo }のように見えます。 } 'どこでthis.props.photo = {{photo0:{uri: 'file:///storage/emulated/0/DCIM/Camera/IMG_20161015_054936.jpg'、名前: 'IMG_20161015_054936.jpg'}}'と私は「TypeError:Network request failed」というエラーがあり、サーバーに要求が表示されません。しかし、私の突然変異からgetFiles funcを削除すると、すべて正常に機能します。私は間違っているのですか?( – Tony

+0

あなたのサーバーにファイルを受け入れるためにmulterを設定する必要があります –

関連する問題