Javascript v-if在没有v-else的情况下不工作,使用返回Vuex状态的计算属性

Javascript v-if在没有v-else的情况下不工作,使用返回Vuex状态的计算属性,javascript,vue.js,vuejs2,vue-component,vuex,Javascript,Vue.js,Vuejs2,Vue Component,Vuex,我不确定问题出在哪里,但是,基本的v-if不能正常工作 <template> <div> <select v-model="col.code"> <option v-for="i in foo" :value="i.code">{{ i.code }}</option> </select> {

我不确定问题出在哪里,但是,基本的v-if不能正常工作

<template>
   <div>
       <select v-model="col.code">
            <option v-for="i in foo" :value="i.code">{{ i.code }}</option>
       </select>

       {{ col }}
       // { "code": "B" }

       <div v-if="col.code"> // not working
            {{ col.code }}
       </div>
   </div>
</template>


<script>
export default {
    data() {
       return {
           foo: [
            {code: 'A'},
            {code: 'B'},
            {code: 'C'}
           ]
       } 
    },
    created() {
        this.view();
    },
    watch: {
        '$route': 'view',
    },
    computed: {
        col() {
            return this.$store.state.col;
        }
    }
}
</script>

奇怪。

似乎没有问题,但将select绑定到计算属性是错误的,因此您应该使用计算setter:

  computed: {
        col: {
            get(){
              return this.$store.state.col;
             
              },
            set(newVal){
              this.$store.commit('UPDATE_COL',newVal); 
            }  
        }
    }
Vue.useVuex //存储实例 const store=新的Vuex.store{ 声明:{ 上校:{ 代码:“A” } }, 突变:{ 更新状态,有效载荷{ state.col=有效载荷 } } } //vue实例 让应用程序=新Vue{ el:“应用程序”, 百货商店 资料{ 返回{ 傅:[{ 代码:“A” }, { 代码:“B” }, { 代码:“C” } ] } }, 创造{ }, 计算:{ 上校:{ 得到{ 返回此。$store.state.col; }, 塞特纽瓦尔{ 此.$store.commit'UPDATE_COL',newVal; } } } } {{i.code}} 我的代码:{col.code}
看起来没有问题,但是将select绑定到计算属性是错误的,因此您应该使用计算setter:

  computed: {
        col: {
            get(){
              return this.$store.state.col;
             
              },
            set(newVal){
              this.$store.commit('UPDATE_COL',newVal); 
            }  
        }
    }
Vue.useVuex //存储实例 const store=新的Vuex.store{ 声明:{ 上校:{ 代码:“A” } }, 突变:{ 更新状态,有效载荷{ state.col=有效载荷 } } } //vue实例 让应用程序=新Vue{ el:“应用程序”, 百货商店 资料{ 返回{ 傅:[{ 代码:“A” }, { 代码:“B” }, { 代码:“C” } ] } }, 创造{ }, 计算:{ 上校:{ 得到{ 返回此。$store.state.col; }, 塞特纽瓦尔{ 此.$store.commit'UPDATE_COL',newVal; } } } } {{i.code}} 我的代码:{col.code}
用于更新列状态的操作是什么?用于更新列状态的操作是什么?它也不起作用。没有错误,什么都没有。col=>get有效,而col=>set无效。我还测试了没有计算属性的基本数据。它也不工作。请分享你的商店,如果你能分享一些代码笔代码,这将是非常有帮助的它非常基本。几乎和你贴的一样。只包括路由器和混音器。无论如何我知道您的答案可能是正确的,但是,奇怪的是,我需要将v-if包装到另一个根元素。问题可能来自存储状态即使没有存储状态,使用基本数据,它也无法工作。无论如何,我找到了一个解决办法。我知道你的代码很有效,因为我以前用过。它也不起作用。没有错误,什么都没有。col=>get有效,而col=>set无效。我还测试了没有计算属性的基本数据。它也不工作。请分享你的商店,如果你能分享一些代码笔代码,这将是非常有帮助的它非常基本。几乎和你贴的一样。只包括路由器和混音器。无论如何我知道您的答案可能是正确的,但是,奇怪的是,我需要将v-if包装到另一个根元素。问题可能来自存储状态即使没有存储状态,使用基本数据,它也无法工作。无论如何,我找到了一个解决办法。我知道你的代码很有效,因为我以前用过。谢谢