2017-04-03 15 views
1

すでにfirebaseからデータを抽出して表示しました。今私も画像を表示する必要があります。 firebaseデータベースでは、私は以下の画像と同じ構造を持っていますenter image description here反応したネイティブアプリケーションのfirebaseから画像を動的に表示

そして、 "Carl.png"の例のように全く同じ名前の画像がすべて入っているフォルダがプロジェクトの下にあります "Myproject/img /" + photo + ".png"の残りのパスと組み合わされ、画面に正しく表示されます。 しかし、私は画像に影響を与えようとするとエラーが発生します。そして、ここで私は

<Image style={{width: 50, height: 50}} source={{uri : (this.props.item.imageName)}}> </Image> 

をしようとしたコードがあると私はこの enter image description hereを取得し、私は <Image style={{width: 50, height: 50}} source={{ uri: <Text> this.props.item.imageName </Text> }}> </Image>に入れしようとした場合、私はこの enter image description here を取得し、私はこのコードを置けば、ここ source={require(this.props.item.imageName)}は私が得るものです:uが nknown命名しますモジュール

答えて

0

はあなたがタグを開閉&の間のスペースを持っている <Image style={{width: 50, height: 50}} source={{uri : (this.props.item.imageName)}} />

てみてください。 ソースは、= {(「./ IMG/『+写真+』。PNG」)を必要と}

+0

こんにちは、ありがとう..私はあなたのソリューションを試してみましたが、私は画面上に何も得ていないと私はエラーを取得しません..しかし、コンソールで、私はこれを得る :projectName/img/photos/Carl.pngという名前の画像が見つかりませんでした。どんな考えでも – user3521011

+0

@ user3521011インターネットからアクセスできる完全な絶対URLを使用していることは確かですか? – nehvaleem

+0

いいえ、実際にはインターネットからのものではありません。それはFirebaseデータベース内の全く同じ名前のすべての写真を含む私のプロジェクトの下のフォルダです。しかし、私はデータベースからアイテムを得るたびに、写真(上記の例のCarlのようなもの)を抽出し、それをプロジェクトの下のパス+写真+(.png)と連結します – user3521011

1

は、あなたのソース属性になるので、あなたはローカルストレージからそれをロードしているので、必要に使用して、それをロードしてくださいReactネイティブは、ローカルに保存されていてもダイナミックイメージをサポートしておらず、ダイナミックイメージの名前を動的に変更する必要があります。だから、私が使用することを余儀なくされた唯一の解決策は、大規模なスイッチケースと、ここで私が使用したコードを使用することでした:

 switch (item.name) { 
       case 'carl': 
        return (
         <Image source{require('pathUnderProject/carl.png')}/> 
        ); 
... 
       default: 
        return (
         <View > 
          <Text>{'Null'}</Text> 
         </View> 
        ); 

を私はそれが最善の解決策ではないと知っているが、少なくとも私はそれがうまく働いていると確信していますそれは生産環境で壊れません

+0

ありがとうございます.. * *私はちょうど今試みました、私はUnknownという名前のモジュール 'projectName/img/photos/Carl.png' **を取得しました。 – user3521011

関連する問題