How to display all icons from icons folder in vuejs

Viewed 33

Created a small project with vuejs and want to display all my icons but for some reason it does not displays my icons, Can anyone tell me where I am making the mistakes. I want to display all my icons from that icons list in the div element. Any help will be much appreciated, thanks!

ValidatingProps.vue

<template>
  <div>
    <h1>How to use Validation in props</h1>
    <h3>{{ status }}</h3>
    <div class="icons" v-html="icons"></div>
  </div>
</template>

<script>
import icons from "./icons";

console.log(icons);

export default {
  name: "validatingProps",
  props: {
    status: {
      type: String,
      default: "Validating",
      validator: (value) => {
        console.log("Val", value);
        return ["in-progress", "complete"].includes(value);
      },
    },
    icons: {
      type: String,
      required: true,
      validator: (value) => {
        console.log("Value >>>> ", value);
        Object.keys(icons).includes(value);
        console.log("Icons props: ", Object.keys(icons).includes(value));
      },
    },
  },
  mounted() {
    console.log("mounted ", Object.keys(icons));
    console.log("this.Icons: ", this.icons);
  },
};
</script>

<style scoped>
.icons {
  height: 200px;
  width: 200px;
  border: 2px solid red;
  margin: 0 auto;
  background: lightcyan;
}


App.vue

<div>
<template>
  <ValidatingProps
      status="progress"
      :icons="Object.keys(this.icons.default)"
    />
  </div>
</template>

<script>
import ValidatingProps from "./components/validatingProps.vue";
import * as icon from "./components/icons/";

export default {
  name: "App",
  components: {
    ValidatingProps,
  },

 data() {
    return {
      icons: icon,
   }
}
</script>

my icons folder structure:

enter image description here

My Div box shows:

enter image description here

0 Answers
Related