jquery - 当 img 不存在时使用 ReactJS 将其替换为空

标签 jquery reactjs image

我想用我的 react 组件中的任何内容替换不存在的图像。有没有办法使用 onError 以某种方式在图像的位置放置任何内容?

render() {
  return (
    <img src={myImage} onError={(e)=>{/*Do something to replace the image with nothing*/}}/>
  )
}

或者,我可以使用 jquery 来检测图像,如果没有找到图像,我只需在 render 函数上返回 null 即可。但就目前情况而言,我也无法做到这一点。这就是我的函数当前的样子:

  checkIfImageExists () {
    return $.get(myImage)
      .done(() => console.warn('found it!', myImage))
      .fail(() => console.warn('didnt fin it!', myImage))
  }

render() {
      console.warn(this.checkIfImageExists())
    if (!this.checkIfImageExists().status) {
      return null
    }
  return (
    <img src={myImage}/>
  )
}

这些的问题是永远找不到它。我的代码有什么问题吗?如何修复它,以便在找不到图像时不渲染任何内容?

最佳答案

这两种情况都需要使用组件state来异步处理图像:

state = { imgSrc: myImage } // depends on where myImage comes from

onImageError = () => {
  this.setState({ imgSrc: null })
}

render() {
  return (
    {this.state.imgSrc && <img src={this.state.imgSrc} onError={this.onImageError }/>}
  )
}

关于jquery - 当 img 不存在时使用 ReactJS 将其替换为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52335106/

相关文章:

javascript - 创建通用的 React 组件

css - 编辑 : How would I go about inlining these span and imgs in CSS?

javascript - CSS 调整图像大小以适应 div 并响应

javascript - 如何在范围内显示数组的元素?在javascript中

javascript - 我正在尝试在我的 React Hangman 应用程序中为一组字母设置动画

image - Magento导入图像

php图片上传

javascript - 使用 jQuery 在隐藏输入上触发按键事件

javascript - 无法使用jquery获取xml元素文本值

javascript - 在 React 中仅显示来自 Rest api 的单个对象数组