React 图片加载失败调用onError显示默认图

1 篇文章 0 订阅
// 只调用一次onError 防止默认图加载不出来导致死循环
import React, { useState } from 'react'
const Image = props => {
	const [isError, setIsError] = useState(true)
	const defaultImg = 'https://th.wallhaven.cc/lg/2e/2em38y.jpg'
	const imgerrorfun = (event) => {
		if (isError) {
			setIsError(false);
			event.target.src = defaultImg;
		}
	}
	return <img onError={imgerrorfun} alt="" {...props} />
}
const Father = () => {
	const url1 = 'https://th.wallhaven.cc/lg/5w/5we787.jpg';
	const url2 = 'https://th.wallhaven.cc/lg/dg/dgrgql.jpg';
	return (
		<React.Fragment>
			<Image src={url1} />
			<Image src={url2} />
		</React.Fragment>
	)
}

export default Father;
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React图片加载是一种对网页性能优化的方式,可以提高页面的加载速度,减轻服务器的压力,节省流量。它通过延迟加载图片资源,只有当图片滚动到视中才进行加载。这样可以避免在页面一开始加载时就加载大量图片,提高用户的体验和页面的响应速度。在React中,可以使用第三方库如"react-lazy-load-image-component"或"react-lazyimg-component"来实现图片加载的功能。 你可以通过安装相应的组件来使用图片加载功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [react 实现图片加载](https://blog.csdn.net/Kmnyed/article/details/130691665)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [react-reactlazyimgcomponent一个基于jquerylazyload结合react组件概念完成的图片加载小插件](https://download.csdn.net/download/weixin_39841882/11549848)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值