我有3个vue组件,分别是List,Car,AddNew
List.vue 是父组件,具有2个这样的组件:
<add-new :cars-models="carModels"></add-new>
<car
v-for="(car, index) in items"
:key="car.id"
:data="car"
:car-models="carModels"
>
</car>
后来有这个:
data(){
return{
items:'',
carModels:''
}
}
,
created(){
axios.get('car-models')
.then(({data})=>{
this.carModels= data;
});
axios.get('cars')
.then(({data})=>{
this.items = data;
});
}
在 addNew.vue 中,我有以下内容:
props: ['carModels'],
data(){
return {
models:''
}
},
watch:{
carModels(){
this.models= this.carModels;
}
}
我必须使用观察器,因为carModels填充在父组件中,在这里可以吗,但是在 Car.vue
中props: ['carModels'],
data(){
return {
models:''
}
},
watch:{
carModels(){
this.models= this.carModels;
}
}
如您所见,它是相同的,但是 this.models 并未填充道具carModels,尽管道具已填充!我不知道发生了什么 谢谢
答案 0 :(得分:1)
我的猜测是这是一个计时问题。观察者carModels不会被触发,因为自组件创建以来,carModels的值就在那里。您可以做的就是修改数据,使其看起来像这样:
topic = 'new'
# See documentation on defining a message payload.
message = messaging.Message(
data={
'title': 'hahaha',
'body': 'test',
},
topic=topic,
)
# Send a message to the devices subscribed to the provided topic.
response = messaging.send(message)
# Response is a message ID string.
print('Successfully sent message:', response)
这样,首先复制道具数据,然后在每次更新道具时由观察者更新
return {
models:this.carModels
}