zoukankan      html  css  js  c++  java
  • bug:Vuex

    问题

    v-model取值问题

    Vuex - Computed property “xxx” was assigned to but it has no setter

    报错情形

    <template>
      <div v-model="checkStatus">
        123
      </div>
    </template>
    
    <script>
    import {mapState} from "vuex"
    export default {
      computed:{
        ...mapState({
          checkStatus:state => state.common.checkStatus
        })
      }
    }
    </script>
    

    解决方案

    //In your Component
    
    computed: {
      ...mapGetters({
              nameFromStore: 'name'
          }),
      name: {
         get(){
           return this.nameFromStore
         },
         set(newName){
           return newName
         } 
      }
    }
    //In your store
    
    export const store = new Vuex.Store({
       state:{
         name : "Stackoverflow"
       },
       getters: {
         name: (state) => {
             return state.name;
         }
       }
    }
    

    我的解决方案

    component 页面

    <template>
      <div v-model="common.checkStatus">
        123
      </div>
    </template>
    <script>
    import {mapState} from "vuex"
    export default {
    //component 页面 computed部分
    //computed
      computed: {
        ...mapState({
            common:state => state.common,
            checkStatus:state => state.common.checkStatus
        }),
      }
      //component 页面 watch部分
      //watch 实时监听checkStatus
      watch: {
        checkStatus(newVal){
          if(newVal){
    
          }else{
    
          }
        }
      }
    }
    </script>
    

    store下的common.js

    const state = {
      checkStatus:false
    }
    const getters = {}
    const actions = {}
    const mutations = {
      setCheckStatus(state,payload){
        state.checkStatus = payload
      }
    }
    
    export default {
      state,
      getters,
      actions,
      mutations
    }
    

    其他 component页面 实时监听checkStatus

    import {mapState} from "vuex"
    export default {
      computed: {
        ...mapState({
            checkStatus:state => state.common.checkStatus
        }),
      },
      //watch 实时监听checkStatus
      watch: {
        checkStatus(newVal){
          if(newVal){
    
          }else{
    
          }
        }
      }
    }
    

    其他 component页面 更新checkStatus

    import {mapState} from "vuex"
    export default {
      methods:{
        clickOpen(){
          this.$store.commit("setCheckStatus",true)
        },
        clickClose(){
          this.$store.commit("setCheckStatus",false)
        }
      }
    }
    

    bug:Vuex - Computed property “name” was assigned to but it has no setter

  • 相关阅读:
    一天一道算法题---6.8--数学题
    TOJ----1037---最大独立集
    一天一道算法题---6.6---排列递推(我不会)
    一天一道算法题---6.4--中途相遇法
    一天一道算法题--6.5--数学题
    夜太美---酒不醉--人自醉
    SSH组合之Spring3整合Hibernate4(一)
    Hibernater入门
    Java微信公众平台进入开发模式
    新浪sae平台进行数据库的连接
  • 原文地址:https://www.cnblogs.com/yihan123/p/13675029.html
Copyright © 2011-2022 走看看