Мне бы хотелось, чтобы мой вид, используя идентификатор, переданный в качестве реквизита, для поиска свойства объекта в магазине.Объект в хранилище появляется асинхронно, поэтому объект может отсутствовать не сразу.Я бы хотел, чтобы представление реагировало на возможное появление объекта.
<template>
<div>
<h1>{{ title }}</h1>
</div>
</template>
<script>
export default {
props: ['id'],
computed: {
widget () {
let path = `widget/${this.id}`
return this.$store.state.widgets[path]
},
title () {
let widget = this.widget
return (widget) ? widget.data().fullName : 'nothing to see here'
}
}
}
</script>
Используя инструменты отладки vuex, я могу наблюдать, как объект виджетов магазина начинается пустым, а затем устанавливается с помощью widgets: { 'widgets/someId': { ... } }
, но мое vueпохоже, не принимает изменения.Название остается == 'Ничего ...'.
Я пытался сделать эти методы, но я получаю то же самое поведение.Я также попытался заменить весь объект widgets
в магазине, вместо одной опоры за раз (я думаю, что это требование), но все же не повезло.
Я думаю, что мой вопрос очень похож на этот , но ответ здесь слишком краткий.Он просто говорит «использовать элемент данных», но я действительно не знаю, что это такое или как его использовать (или почему это сделает VUE реактивным).