javascript - 为什么这个 Vue 计算属性不是响应式的?
问题描述
我希望我的视图使用作为道具传递的 id 在商店中查找对象的属性。存储中的对象异步显示,因此该对象可能不会立即出现。我希望视图对对象的最终外观做出反应。
<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 反应)。
解决方案
推荐阅读
- java - Argon2 php vs Java hash_len
- sql - Oracle SQL 在一列中仅选择 5 位数字行
- api - 如何将我的用户作为成员包含在 Sandbox 中的组类型身份中?
- mysql - 可能 MySQL ibdata1 已损坏
- airflow - 气流:将执行日期范围任务实例标记为成功
- c++ - 如何从 DROPFILES 结构中提取拖放的文件名
- node.js - 是否可以使用 Bunyan 将前端(React)错误记录到后端(Node JS)?
- c++ - 检查是否可以在不丢失信息的情况下将指针存储在 uint64_t
- wordpress - 如何从组/列内部块中排除父块?
- javascript - 如何使用 foreach 循环计算利率?