I am newbie and in charge a project using Vuejs.
Here is a page that use a component called DashboardCard and each DardboardCard is passed 2 props is val and icon from the page a.k.a the parent component
I declared props in DashboardCard component a.k.a child component but the value of all props can not be passed and assigned
I now I got this error
UPDATE
Here is the Vuejs devtool log, you can see that props was passed

The reason, is that before even the props hold the value, you are trying to access it. So there are two ways I would suggest
From parent component (Dashboard.vue):
Try passing it like :icon="'@/assets/sale.png'" and :val="'$700'"
and in child Component (DashboardCard.vue)
Method-1:
Declare two data variables and set them with the prop values using watch handler
export default {
components: {DatePicker},
props: {
icon: {
type: String,
default: ''
},
val: {
type: String,
default: ''
}
},
data() {
return {
iconPath: '',
amtVal: ''
};
},
watch: {
icon(newVal, oldVal) {
this.iconPath = newVal;
},
val(newVal, oldVal) {
this.amtVal = newVal;
}
}
and in template use your local data variables like
<span>{{amtVal}}</span>
and
<img :src="require(iconPath)" alt="icon" />
Method-2:
Using a computed property
export default {
components: {DatePicker},
props: {
icon: {
type: String,
default: ''
},
val: {
type: String,
default: ''
}
},
computed: {
getIcon() {
return this.icon;
},
getVal() {
return this.val;
}
}
and in template
<span>{{getVal}}</span>
and
<img :src="require(getIcon)" alt="icon" />
You are missing the script ending tag </script> in the DashboardCard component so Vue can't spot out the component properties. At first, I thought there was more code down there until I try the sandbox.
Please note that in the Vue devtools extension, a prop is supposed to sit under the props tab, which is not your case.
I suggest you using some kind of snippets to avoid this annoying typos. For me I use Vetur. It also helps with syntax highlighting, pretty handy extension.
https://marketplace.visualstudio.com/items?itemName=octref.vetur