Не уверен, в каком контексте вы переключаете данные на вашем currentObject
, но ниже приведен компонент детализации концепции, и когда вы переключаете objs
, он обновляет реквизит :obj
и, кажется, работает нормально.
Глядя на свой код, вы должны объявить objs
, используя :
, а не =
.
data: function() {
return {
currentObject: null,
objs: [
{name:'obj 1'},
{name:'obj 2'}
]
};
}
Вот компонент детализации концепции, запустите фрагмент, чтобы убедиться, что он работает.
Vue.component('detail', {
props: ['obj'],
template: '<div>{{ obj }}</div>'
})
var app = new Vue({
el: '#app',
data() {
return {
bToggle: false,
currentObject: null,
objs: [
{name:'obj 1'},
{name:'obj 2'}
]
}
},
created(){
this.switchData();
},
methods: {
switchData() {
if(!this.bToggle){
this.currentObject = this.objs[0];
}else{
this.currentObject = this.objs[1];
}
this.bToggle = !this.bToggle;
}
}
})
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<div id="app">
<button @click="switchData()"> switch </button>
<detail :obj="currentObject"></detail>
</div>