请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Ant Design Vue自定义图标

如果使用 vue cli 3,可以通过配置 vue-svg-loader 来将 svg 图标作为 Vue 组件导入

// vue.config.js
module.exports = {
  chainWebpack: config => {
    const svgRule = config.module.rule('svg');

    svgRule.uses.clear();

    svgRule.use('vue-svg-loader').loader('vue-svg-loader');
  },
};
import { defineComponent } from 'vue';
import Icon from '@ant-design/icons-vue';
import MessageSvg from 'path/to/message.svg'; // '*.svg' 文件的路径

export default defineComponent({
  setup() {
    return () => <Icon type={MessageSvg} />;
  },
});

老师,文档写的方法看不太懂,下面这块代码是怎么用的呢

正在回答

2回答

甲蛙 2021-04-19 13:45:58

上面一个是vue2的,下面一个是vue3的,vue3我们写了很多setup,最下面都是return,你在我们现有的return里面,再加一个() => <Icon type={MessageSvg} />;试试

0 回复 有任何疑惑可以回复我~
  • 提问者 Ark_One #1
    报错 Warning: [@ant-design/icons-vue] Should have `component` prop/slot or `children`.
    回复 有任何疑惑可以回复我~ 2021-04-19 14:44:47
  • 提问者 Ark_One #2
    非常感谢!
    回复 有任何疑惑可以回复我~ 2021-04-22 21:14:48
提问者 Ark_One 2021-04-19 14:43:51
<template>
  <component :is="MessageSvg"></component>
</template>

<script>
import Icon from '@ant-design/icons-vue'
import MessageSvg from '@/assets/svg/it.svg'

export default {
  name: 'About',
  setup () {
    return () => <Icon type={MessageSvg} />
  }
}
</script>

代码如上,

报错信息:

Warning: [@ant-design/icons-vue] Should have `component` prop/slot or `children`.



0 回复 有任何疑惑可以回复我~
  • 甲蛙 #1
    SVG我也没用过,没遇到过你这个问题,MessageSvg是你自己的吗?存在吗?看这篇有没有用:https://blog.csdn.net/weixin_43827462/article/details/106399706
    回复 有任何疑惑可以回复我~ 2021-04-21 11:25:49
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信