export const fruitsdata = [
{
id: "1",
fruit: "freshapples",
value: "3"
},
{
id: "2",
fruit: "Notfreshapples",
value: "1"
},
{
id: "3",
fruit: "freshmangoes",
value: "3"
},
{
id: "4",
fruit: "Notfreshmangoes",
value: "1"
}
];
<template>
<div>
<div v-for="fruit in fruits" :key="fruit.id">
freshapples: {{ fruit.value }} Notfreshapples{{ fruit.value }}
freshmangoes:{{ fruit.value }} Notfreshmangoes:{{ fruit.value }}
</div>
</div>
</template>
<script>
import fruitsdata from "../fruitsdata";
export default {
name: "HelloWorld",
data() {
return {
data: fruitsdata,
};
},
props: {
fruitsdata: {
required: true,
type: Object,
},
},
};
</script>
I am trying to get data from “fruitsdata.js” file and bind the data in the html. But not sure, what’s wrong. unable to use the get the data from .js file??
Error i am getting now is:-
[Vue warn]: Missing required prop: “fruitsdata”
[Vue warn]: Property or method “fruits” is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property. See: https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.
code:- https://codesandbox.io/s/magical-boyd-m3ib6?file=/src/fruitsdata.js
Advertisement
Answer
So, there’s a couple of things wrong with your code.
First of all, you do not need to use props if you are loading the data from a file. Also the props are used to pass data to the component (e.g. <hello-world :fruits="fruitsdata">
.
Next problem is with your import statement. Because you are exporting a const you need to wrap fruitsdata
in curly braces to import that variable correctly.
I’ve edited your code and it should work (not tested).
export const fruitsdata = [
{
id: "1",
fruit: "freshapples",
value: "3"
},
{
id: "2",
fruit: "Notfreshapples",
value: "1"
},
{
id: "3",
fruit: "freshmangoes",
value: "3"
},
{
id: "4",
fruit: "Notfreshmangoes",
value: "1"
}
];
<template>
<div>
<div v-for="fruit in fruits" :key="fruit.id">
{{ fruit.fruit }}: {{ fruit.value }}
</div>
</div>
</template>
<script>
import { fruitsdata } from "../fruitsdata";
export default {
name: "HelloWorld",
data() {
return {
fruits: fruitsdata,
};
},
};
</script>