嗨,我是Vue的新人,所以也许我错过了一些明显的东西。
我有一个组件SliderItem
我想设置顶部位置,所以我为数据添加了一个属性:
data () {
return {
/*more data*/
topSliderText: '120px'
}
}
这是Vue实例
import { Slider } from 'vue-easy-slider'
var SliderItem = require('./components/easy-slider-item.vue');
new Vue( {
el: '#slider',
data () {
return {
list: [
{ background: "url('/images/sliders/be.png')", width: '100%', height: '100%' },
]
}
},
components: {
Slider,
SliderItem
},
mounted() {
}
} );
然后在视图中
<div class="" id="slider">
<slider animation="fade">
<slider-item v-bind:style="{top: topSliderText}" v-for="(i, index) in list" :key="index">
<div :style="i">
<div class="slider-text">
<p style="font-size: 5rem; text-align: center;">Page @{{ index +1 }}</p>
</div>
</div>
</slider-item>
</slider>
但是没有用,SliderItem
没有风格,我在控制台上发出警告
vue-slider.js:561 [Vue warn]:属性或方法“topSliderText”未在实例上定义,但在渲染期间引用。确保在数据选项中声明反应数据属性。
vue-slider.js:562 [Vue warn]:计算属性“topSliderText”已在数据中定义
但是当我使用Vue chrome扩展程序来查看组件时,它具有如此属性......我不知道我做错了什么......
提前致谢。
答案 0 :(得分:1)
您在topSliderText
组件中定义了SliderItem
,但在父组件中使用了它。
这就是你得到vue [warn]的原因,因为vue在父组件的属性中搜索topSliderText
。
因此,将topSliderText
定义为父组件本身的数据属性