VueJS - 无法将道具从 parent 传递到 child 组件
VueJS - unable to pass props from parent to child component
这是我的 parent:
<template>
<Chart :type="bar" :data="[2,15,3,4,5,1,2,4,10,11]"></Chart>
</template>
<script>
import Chart from "./Chart"
export default {
components: {
Chart
},
}
</script>
这是我的 child 组件:
<template>
<highcharts :options="chartOptions"></highcharts>
</template>
<script>
import {Chart} from 'highcharts-vue'
export default {
props: ["data", "type"],
components: {
highcharts: Chart
},
data() {
return {
chartOptions: {
chart: {
type: this.type
},
series: [{
data: this.data, // sample data
name: "Test Series",
color: "blue"
}]
}
}
}
}
</script>
我可以通过道具传递数据,但不能传递类型。当我将 type: this.type
更改为 type: "bar"
时,它按预期工作,因此代码本身没有错误。
我收到以下警告:
vue.runtime.esm.js?2b0e:619 [Vue warn]: Property or method "bar" 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.
我做错了什么?
您正在尝试将 bind
prop
“类型”动态地 bar 就好像最后一个是变量一样。如果您想将其作为字符串传递,请执行以下操作:
<Chart type="bar" :data="[2,15,3,4,5,1,2,4,10,11]"></Chart>
你使用 :type="bar" 所以 Vue 寻找一个名为“bar”的变量 o getter。
如果您想将值作为字符串传递,您应该在“类型”之前删除“:”。
<template>
<Chart type="bar" :data="[2,15,3,4,5,1,2,4,10,11]"></Chart>
</template>
这是我的 parent:
<template>
<Chart :type="bar" :data="[2,15,3,4,5,1,2,4,10,11]"></Chart>
</template>
<script>
import Chart from "./Chart"
export default {
components: {
Chart
},
}
</script>
这是我的 child 组件:
<template>
<highcharts :options="chartOptions"></highcharts>
</template>
<script>
import {Chart} from 'highcharts-vue'
export default {
props: ["data", "type"],
components: {
highcharts: Chart
},
data() {
return {
chartOptions: {
chart: {
type: this.type
},
series: [{
data: this.data, // sample data
name: "Test Series",
color: "blue"
}]
}
}
}
}
</script>
我可以通过道具传递数据,但不能传递类型。当我将 type: this.type
更改为 type: "bar"
时,它按预期工作,因此代码本身没有错误。
我收到以下警告:
vue.runtime.esm.js?2b0e:619 [Vue warn]: Property or method "bar" 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.
我做错了什么?
您正在尝试将 bind
prop
“类型”动态地 bar 就好像最后一个是变量一样。如果您想将其作为字符串传递,请执行以下操作:
<Chart type="bar" :data="[2,15,3,4,5,1,2,4,10,11]"></Chart>
你使用 :type="bar" 所以 Vue 寻找一个名为“bar”的变量 o getter。 如果您想将值作为字符串传递,您应该在“类型”之前删除“:”。
<template>
<Chart type="bar" :data="[2,15,3,4,5,1,2,4,10,11]"></Chart>
</template>