当前位置: 首页 > 面试题库 >

如何在React JS中检查损坏的图像

郎曜文
2023-03-14
问题内容

我正在编写一个模块,该模块从json获取文章数据,并在文章文本上显示大图像,这就是他们所说的英雄模块。

我已经有了数据并进行了设置,因此,如果有图像,它将显示该图像,如果数据中没有图像,则将显示默认图像。问题在于此方法不会替换断开的链接以显示默认图像。

我还是刚开始反应并使用状态…问题是,我应该使用状态来检查断开的链接,我该怎么做?

这就是我如何在模块中作为道具获取数据的方式:

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>

为了检查是否有损坏的图像该怎么办?我认为这是所需的所有相关数据,请告诉我是否还有其他内容。谢谢!


问题答案:

对于图像onerror,有一个本机事件,如果无法加载图像,则可以执行操作。

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

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


 类似资料:
  • 我需要一个快速的Java方法来检查JPEG文件是否有效,或者它是否是一个被截断/损坏的图像。 我试着用几种方法: > 使用javax.imageio库 我正在寻找一个Java替代UNIX程序jpeginfo,它大约快10倍(在我的PC上,大约10个图像/秒)。

  • 问题内容: 我们有一段代码可以在我们的系统上生成一个zip文件。一切正常,但是有时该Zip文件在由FilZip或WinZip打开时被视为已损坏。 所以这是我的问题:我们如何以编程方式检查生成的zip文件是否损坏? 这是我们用于生成zip文件的代码: 我们在这里做错了什么吗? 编辑:实际上,上面的代码是绝对可以的。我的问题是我正在为用户重定向WRONG流。因此,与其打开一个zip文件,不如打开一个完

  • 问题内容: 我有一个数据库,其中有一堆破碎的utf8字符散布在几个表上。字符列表不是很广泛的AFAIK(áéíúóÁÉÍÓÓÚÑñ) 修复给定的表非常简单 但是我无法检测到损坏的字符。如果我做类似的事情 由于排序规则(Ã= a),我几乎获得了所有字段。到目前为止,所有损坏的字符均以“Ô开头。数据库是西班牙语,因此不使用此特定字符 到目前为止,我得到的损坏字符列表是 是否知道如何使此SELECT正

  • 我们正在使用Apache Camel(Camel 2.10.3,Java基于DSL)构建一个集成项目。 我们有一个路由,每天从数据库中提取数据(让我们称之为IN_DB),执行一些逻辑并插入另一个数据库(OUT_DB),另一个路由订阅XML数据的JMS主题,执行一些逻辑并全天插入同一个数据库(OUT_DB)。 需求是,当JMS主题连接因任何原因中断时,我们会一直尝试无限期地重新连接,一旦重新连接成功

  • 问题内容: 我想为Java中的多线程实现延迟初始化。 我有一些这样的代码: 我得到了“双重检查锁定已损坏”声明。 我该如何解决? 问题答案: 以下是第71项中建议的惯用语:明智地使用 Effective Java: 如果你需要使用延迟初始化来提高实例字段的性能,请使用double-check idiom。这种习惯用法避免了在初始化字段后访问字段时发生锁定的费用(项67)。习惯用法的想法是检查字段的

  • 问题内容: 我在JavaFX 8桌面应用程序中以嵌入式模式使用h2数据库,并且为用户开发了一个备份和还原数据库文件的选项。 在较旧版本的程序中,我使用了SQLite数据库,使用此命令pragma integrity_check来检查数据库文件非常简单。 在h2数据库中使用该命令总是会引发异常。 在h2数据库中有什么替代方法?在使用h2数据库文件之前,是否有显式或更合适的方法来检查它? 谢谢任何帮助