2017-04-19 10 views
0

前の質問hereコミュニティから助けを受けて、結果のbase64文字列をsrc属性として設定しましたが、画像の1つまたは複数の画像には画像の下部がありません。下の画像をご覧ください。以下はなぜ私のbase64文字列は自分の写真の一部にしか表示されませんか?

Resulting partial image

私は画像の内容を設定するために使用しているコードです。画像の残りの部分を表示するにはどうしたらいいですか?

import React from 'react'; 
 
import axios from 'axios'; 
 
import * as settings from './settings'; 
 

 
export default class Post extends React.Component { 
 
    constructor(){ 
 
     super(); 
 
     this.state = { 
 
      profileImage:'img/loading.gif' 
 
     }; 
 
    } 
 
    componentDidMount(){ 
 
     if(this.props.post.PostImageId != "00000000-0000-0000-0000-000000000000"){ 
 
      // get post image data 
 
      _rvw.getImage(this.props.post.PostImageId) 
 
      .then((res)=>{ 
 
       this.setState({ 
 
        postImage: "data:" + res.headers["content-type"] + ";base64," + res.data 
 
       }); 
 
      }); 
 
     } 
 
     else //no image 
 
     { 
 
      this.setState({ 
 
       postImage: "img/no-image.png" 
 
      }); 
 
     } 
 
    } 
 
    getImage(id){ 
 
     let config = { 
 
      headers:{ 
 
       'Content-Type': 'application/json', 
 
       'Accept':'application/json', 
 
       'Authorization':'Bearer ' + localStorage.token 
 
      } 
 
     }; 
 
     return axios.get(settings.baseUrl()+'/mediacontent/get/'+id,config); 
 
    } 
 
    render(){ 
 
     return (<div className="image"> 
 
       <img ref="postMedia" src={this.state.postImage} /> 
 
      </div>); 
 
    } 
 
}

全成分がhere見出すことができます。あなたのポストに基づいて

+0

最初に受信したデータが完全であることを確認します。 – zerkms

+0

無関係ですが、依然として:btw、 'this.props.post.ProfileImageId!= null'チェックが重複している可能性があります。 – zerkms

+0

サイズを二重に確認しても問題ありません。紺碧のブロブは289.9kbで、私はhttpレスポンスから290kbを受け取っています。 – chesco

答えて

0

<img ref="postMedia" src={this.state.postImage} />

、SRCの値はthis.state.postImageの代わりにthis.state.profileImageする必要があります。また、画像の他の部分が他のUI要素で覆われているかどうかを確認してください。ブラウザが提供するDOM Explorerウィンドウを使用して、これらのhtml要素に適用されたhtml要素とスタイルシートを確認できます。

+0

こんにちはアモール、私は先に行っていくつかの訂正をしました。私は、全コンポーネントからコードを抽出して、問題に関係するものだけを表示しようとしましたが、今度は全コンポーネントのコードへのリンクを追加しました。私はこれがもう少し文脈を加えることを願っています。 – chesco

+0

C#側とJS側の両方からbase64文字列を出力することをお勧めします。それらが異なるかどうかを確認してください。次に、1つのイメージタグを持つ単純なhtmlファイルを作成し、base64文字列を使用してsrcプロパティを設定できます。エラー位置の特定に役立ちます。 – Amor

関連する問題