Я уже получаю реквизиты от моего root компонента. В соответствии с <template>
, который я тестирую, {{firstdata}}
обновляется, когда значение в компоненте root изменяется, но {{topic}}
остается таким же, как и первое полученное значение. Похоже, this.firstdata
хранить данные только один раз без дальнейшего обновления.
Я делаю return {topic: this.firstdata
, потому что мне нужно использовать topic
в моем скрипте java, поскольку я не могу напрямую вызвать {{firstdata}}
в части javascript. Любое решение, чтобы иметь обновление реактивности topic
для меня?
<template>
{{firstdata}}
{{ this.topic }}
</template>
<script>
export default {
props: ["firstdata", "seconddata"],
data() {
return {
topic: this.firstdata
};
},
</script>
Вот так я получаю значение обновления от parent (первые упомянутые мной данные breedKey
)
<b-button v-on:click="currentBreed = 0" > {{ breeds[0].name }} </b-button>
<b-button v-on:click="currentBreed = 1" > {{ breeds[1].name }} </b-button>
<ChildCompo v-bind:breedKey="breedKey" v-bind:time="time"> </ChildCompo>
<script>
data() {
const vm = this;
return {
currentBreed: 0,
time:[],
breeds: [
{ name: "" , key: "" }, // Initially empty values
{ name: "" , key: "" }, // Initially empty values
{ name: "" , key: "" }, // Initially empty values
]
}
},
async created() {
try {
this.promise = axios.get(
"https://www.mustavi.com/Trends/"
);
const res = await this.promise;
this.topic0 = res.data.data[0].Trends;
this.topic1 = res.data.data[1].Trends;
this.topic2 = res.data.data[2].Trends;
this.breeds[0].name = this.breeds[0].key = this.topic0;
this.breeds[1].name = this.breeds[1].key = this.topic1;
this.breeds[2].name = this.breeds[2].key = this.topic2;
this.time = res.data.data[0].DT;
} catch (e) {
console.error(e);
}
},
computed: {
breedKey() {
return this.breeds[this.currentBreed].key;
}
},
</script>