【发布时间】:2021-01-07 08:26:57
【问题描述】:
我有一个状态,我想将新属性 foo: 'bar' 放到 detail 状态
export const state = () => ({
detail: {a: 'b', c: 'd'}
})
export const mutations = {
SET (state, data) {
state.detail.foo = 'bar'
}
}
我在 html 中显示状态
<template>
<div>{{ data}}</div>
/* {a: 'b', c: 'd'} */
</template>
<script>
..
computed: {
...mapState({
data: state => state.detail
})
},
..
</script>
数据显示{a: 'b', c: 'd'},但是当我单击按钮添加foo: 'bar' 时,状态会改变,但不会在html 中刷新。我按F5(刷新浏览器)显示新数据foo: 'bar'
【问题讨论】:
-
option1:向状态添加观察者。如果由于您添加了某些内容而导致状态发生更改,它会自动刷新它 选项2:将状态加载到组件内部的计算中 选项3:添加
:key并更新键的值以强制重新渲染michaelnthiessen.com/force-re-render
标签: javascript vue.js vue-component vuex nuxt.js