2016-07-22 4 views
2

json에서 기사 데이터를 가져와 기사의 텍스트 인 영웅 모듈에 큰 이미지를 표시하는 모듈을 작성하고 있습니다.React JS에서 깨진 이미지를 확인하는 방법

데이터가있어 이미지가있는 경우 해당 이미지가 표시되고 데이터에 이미지가없는 경우 기본 이미지가 표시됩니다. 이 메서드는 끊어진 링크를 바꾸지 않고 기본 이미지를 표시합니다.

저는 아직 반응이없고 새로운 상태를 사용하고 있습니다 ... 질문은 상태를 사용하여 깨진 링크를 확인해야하며 어떻게해야합니까?

내가 데이터를 얻을 방법이있는 모듈의 소품과 같습니다

const { newsItemData: { 
      headline = '', 
      bylines = [], 
      publishedDate: publishDate = '', 
      updatedDate: updatedDate = '', 
      link: newsLink = '', 
      contentClassification: category = '', 
      abstract: previewText = '', 
      abstractimage: { filename: newsImage = '' } = {}, 
      surfaceable: { feature: { type: featureType = '' } = {} } = {}, 
     } = {}, 
     wideView, 
     showPill, 
     defaultImage } = this.props; 

내가 이런 식으로 정보를 표시합니다

<div className={imageContainerClassName} style={customBackgroundStyles}> 
     {newsImage ? <img className="img-responsive" src={newsImage} alt={headline}/> : <img className="img-responsive" src={defaultImage} alt={headline}/>} 
</div> 

을 또한 확인하기 위해 무엇을해야 깨진 이미지? 이것이 필요한 모든 관련 데이터라고 생각합니다. 다른 것을 보여줘야하는지 알려주세요. 감사합니다.

+0

내가이 문제를 해결 할 수있는 무언가를 썼다 시도 : https://github.com/mbrevda/react-img-multi 그건 굉장 – Mbrevda

답변

14

이미지를로드 할 수없는 경우 작업을 수행 할 수있는 onerror이라는 이미지에 대한 기본 이벤트가 있습니다.

<img onError={this.addDefaultSrc} className="img-responsive" src={newsImage} alt={headline}/> 

//in your component 
addDefaultSrc(ev){ 
    ev.target.src = 'some default image url' 
} 
+0

! 정확히 내가 필요한 것입니다.이 원시 이벤트에 대해 더 자세히 알 수 있습니까? Google 검색부터 시작하겠습니다.하지만 좋은 의사가 있다면 알려주십시오. 나는 이것을 몇 시간 동안 알아 내려고 노력했다. D – nyhunter77

+1

@ nyhunter77이 MDN 페이지는 좋은 시작이다. https://developer.mozilla.org/en-US/docs/Web/Events – eltonkamami

+0

바보 같은 질문일지도 모른다. ,하지만 내 대답을 유도하기 위해이 페이지의 정보를 어떻게 사용합니까? 여기에 너무 많이있어 무엇을 봐야할지 모르겠습니다. 감사! @eltonkamami – nyhunter77

0

내 이해에 따르면 깨진 이미지를보고 싶습니다. onError 속성에서 메소드를 호출해야합니다. 이것을 확인하십시오 jQuery/JavaScript to replace broken images

+0

Jquery와 React JS를 섞으면 좋지 않습니다. 지금까지 나는 필요로하지 않았다. 그러나 나는 팔이 나의 등 뒤에 묶여있는 것처럼 느낀다 – nyhunter77

+0

물론. 나는 당신에게이 일을하는 법을 알려주고 있습니다. 또한 onError 속성을 사용하고 반응하는 경우 image 태그의 onError = {somecomponentmethod}와 같은 속성에 대해 구성 요소 메소드를 호출하는 방법을 알고 있어야합니다. –

+0

그래, 고마워, 나는 "Jquery 방식"이나 순수한 JS 방식과 비슷한 몇 가지 방법을 시도했지만 성공하지 못했다. – nyhunter77

관련 문제