【发布时间】:2017-04-11 05:06:02
【问题描述】:
我lookedatseveralquestions来弄清楚我是什么 做错了。在我看来一切设置正确。
目标
根据COMPONENT A的值在DEPENDENT COMPONENT中使用v-show更改隐藏/显示内容。
问题
在 TextField 组件 中,有一个输入触发了我的 vuex store 的突变。 Dependent Component 有一个 computed 值,用于侦听 vuex store 上的更改。
在我的 TextField 组件 中输入时,我可以使用 Vue.js extension 验证突变是否按预期触发。
但是,页面上没有变化。
组件 A
<template>
<div class="field">
<input type="text" :name="field.name" v-bind:value="value" v-on:input="updateValue($event.target.value)">
</div>
</template>
<script>
export default {
props: ['field'],
methods: {
updateValue: function (value) {
this.$store.commit('UPDATE_USER_INPUT', {'key': this.field.name, 'value': value})
}
}
}
</script>
变异
UPDATE_USER_INPUT (state, payload) {
state.userInput[payload['key']] = payload['value']
}
相关组件
<template>
<div class="field-item">
{{ userInput }}
</div>
</template>
<script>
import { mapState } from 'vuex'
export default {
computed: {
...mapState([
'userInput'
])
}
}
</script>
无论我尝试什么,{{ userInput }} 仍然为空:{} 直到我将路线导航回同一位置。但是没有触发计算值监听器。
【问题讨论】:
标签: javascript vue.js vue-component vuex