在微信小程序中使用svg图标

请添加图片描述
在项目中引入图标组件是很常见的一个问题,但是这里我在小程序中引入图标组件的时候报错了!
这个主要原因是
微信小程序上不支持 SVG 字体图标!

 <image src="./xx.svg"/>

所以参考微信开放社区
我们想要在微信小程序中使用svg图标组件可以将其进行转化转化为base64之后进行使用
这里我们用到了

https://icomoon.io/ 将svg图标进行打包
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
成功之后下载并引入项目
由于微信小程序不方便直接使用外部字体库,普遍的做法,是使用transfonter ,将外部字体,转化成base64格式,之后进行使用

在这里插入图片描述
② 将下载之后的字体图标文件中的

文件选中之后在transfonter 转化为base64的形式在这里插入图片描述1.使用 transfonter,将字体文件上传。
2.参数选填好后,convert一下。

合并字体图标

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将图标组件进行封装

// // 公共图标组件
import { View } from '@tarojs/components'
import classNames from 'classnames'
import '../../assets/transfonter/stylesheet.css'
interface SvgIconProps {
  icon: string
  size?: string
  color?: string
}
function SvgIcon({
  icon = 'icon-svgicon',
  size = '24px',
  color = '#000000',
}: SvgIconProps) {
  const containerStyle = {
    display: 'inline-block',
    fontSize: size,
    // color: color !== 'inherit' ? color : undefined,
  }
  const iconClass = classNames(icon, {
    [`icon-color-${color.replace('#', '')}`]: color, // 根据传入的 color 添加颜色类
  })
  // const pathClass = classNames(icon, {
  //   [`color-${color.replace('#', '')}`]: color && color !== 'inherit',
  // })

  return (
    <View className={classNames('svg', 'icon-svgicon')} style={containerStyle}>
      <View className={`svg ${iconClass}`}></View>
    </View>
  )
}
export default SvgIcon

在对应的页面中使用

import SvgIcon from '@/components/svgIcons'
 <SvgIcon icon="icon-shocang" size="48px" color="red" />

上面的代码中就成功实现了在微信小程序中使用svg图标,但是这里还有一个问题,就是svg图标中颜色的填充使用到了svg内部的方法

fill="purple"

这里我们进行封装之后填充的颜色应该怎么改变呐?
可以看出上面的代码中我也尝试了方法,但是没有成功!
现在正在尝试其他的方法!!
记录一下自己的学习过程吧!!欢迎批评指正!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值