在我Vuejs(2.x版),我碰到如下:
vuejs:計算值的對象類型不支持雙向數據綁定
Vue.component('service',{
template: '<div>' +
'<div>{{serviceData.serviceName}}</div>' +
'<input v-model="serviceData.serviceName">' +
'</div>',
props: ['serviceData'],
})
var demo = new Vue({
el: '#demo',
data: {
allData: {
serviceName: 'Service1',
serviceType: '0',
otherInfo: 'xxxinfo',
},
},
computed: {
serviceData() {
return {
serviceName: this.allData.serviceName,
serviceType: this.allData.serviceType,
};
},
},
})
<div id="demo">
<service :service-data="serviceData"></service>
</div>
如上,在我的Vue實例我有原始數據alldata
,這是一個對象類型。並且因爲它包含一些其他非相關信息。我通過computed
創建了一個對象,其中只包含相關信息並將其命名爲serviceData
。
並通過props
將serviceData對象傳遞給組件service
。
在service
組件中,我有一個輸入元素,它與v型模型的雙向綁定到serviceData.serviceName
。
但事實證明,雙向綁定無法正常工作。
那麼如何在這種情況下添加反應性。
請參閱本現場演示:
https://jsfiddle.net/baoqger/t3mr9de3/1/
我認爲將vuex合併到您的應用程序將是最好的方法。 – WaldemarIce