如下面发布的代码所示,组件
ButtonDigitizePolygon.vue
包含一个名为 button
的 slot
。组件 NDVIComparisonGui.vue
渲染 ButtonDigitizePolygon.vue
。
我希望 App.vue
渲染 NDVIComparisonGui.vue
,因此也渲染 ButtonDigitizePolygon.vue
。
以下是我的尝试。当我运行代码时,我只看到
<img>
的内容,但按钮从未呈现。
请告诉我按钮未渲染的原因以及解决方法。
App.vue:
<template>
<img alt="Vue logo" src="./assets/logo.png">
<NDVIComparisonGui></NDVIComparisonGui>
</template>
<script>
import NDVIComparisonGui from './components/NDVIComparisonGui.vue'
export default {
name: 'App',
components: {
NDVIComparisonGui
}
}
</script>
NDVIComparisonGui.vue:
<template>
<ButtonDigitizePolygon @click="onDigitizePolygon()" :isBtnDigitizePolygonDisabled="isBtnDigitizePolygonDisabled">
<template v-slot:slotDigitizePolygonBtnLabel>
{{ compPropsIsToggleBtnDigitizePolygon }}
</template>
</ButtonDigitizePolygon>
</template>
<script>
import { ref } from 'vue';
import { ButtonDigitizePolygon } from './ButtonDigitizePolygon.vue';
let isBtnDigitizePolygonDisabled = ref(false);
export default {
name: 'NDVIComparisonGui',
date() {
return {
isBtnDigitizePolygonDisabled,
};
},
components: {
ButtonDigitizePolygon,
},
props: {
},
};
</script>
ButtonDigitizePolygon.vue:
<template>
<button id="idDigitizePolygonBtn" class="clsDigitizePolygonBtn" :disabled="isBtnDigitizePolygonDisabled">
<slot name="slotDigitizePolygonBtnLabel"></slot>
</button>
</template>
<script>
export default {
date() {
return {
btnDigitizePolyhonState: this.isBtnDigitizePolygonDisabled,
};
},
props: {
isBtnDigitizePolygonDisabled: {
type: Boolean,
default: false,
},
},
};
</script>
您的 NDVIComparisonGui.vue 有两个错误:
import { ButtonDigitizePolygon }
应该是import ButtonDigitizePolygon
data(){ }
而不是date(){}