我是靠谱客的博主 粗暴啤酒,最近开发中收集的这篇文章主要介绍同一个svg渲染不同同一个svg渲染不同,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

同一个svg渲染不同

场景: 在同一个Tab下的两个Pane中加载了同一个组件,发现第二个pane中的组件显示svg效果和第一个pane不一样

  • 第一个pane
    在这里插入图片描述

  • 第二个pane
    在这里插入图片描述

两个pane渲染的是同一个组件,一开始我以为是React.memo渲染缓存的问题,导致第二次加载svg的问题

  • App
<Tabs defaultActiveKey="1" onChange={onChange} activeKey={num}>
  <TabPane tab="机器学习" key="1">
     <LearingTable
       learningType='ml'
     />
   </TabPane>
   <TabPane tab="深度学习" key="2">
     <LearingTable
       learningType='dl'
     />
   </TabPane>
 </Tabs>
  • LearingTable
const LearingTable = React.memo(() => {
	return (<div></div>)
})

但是反复测试都没有解决,后来发现svg的设计有问题,同一张svg不能出现在同一个页面dom中

解决

assets中存入两个名字不一样,内容一样的svg,通过props传入参数用于区分不同的svg(但他们本质上是一样的)

在这里插入图片描述

<div className={styles.content}>
	 {
	   learningType 
	   ? learningType === LEARNING_TYPE.ML
	       ? <NoDataIcon />
	       : <NoData1Icon />
	     : <NoDataIcon />
	 }
 <div>

最后

以上就是粗暴啤酒为你收集整理的同一个svg渲染不同同一个svg渲染不同的全部内容,希望文章能够帮你解决同一个svg渲染不同同一个svg渲染不同所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部