x***@163.com
x***@163.com
  • 发布:2022-07-20 10:55
  • 更新:2022-08-02 19:38
  • 阅读:562

无法监听 store 的变化(userinfo 如何改变 ,isPermission 都无变化,使用watch监听结果一样)

分类:uni小程序sdk

微信小程序 无法监听 store 的变化(userinfo 如何改变 ,isPermission 都无变化,使用watch监听结果一样)

 // 页面内  
  computed: {  
    ...mapState("m_user", ["userinfo"]),  
    isPermission() {  
      if (!this.userinfo.user) return false;  
      return this.userinfo.user.user.auditStatus == 0;  
    },  
  },  
// store --> user  
  state: () => ({  
    //用户基本信息  
    userinfo: JSON.parse(sessionStorage.getItem("tx-qxl-userinfo") || "{}")  
  }),  

  mutations: {  
    //更新用户的信息  
    updateUserinfo(state, userinfo) {  
      state.userinfo = userinfo;  
      this.commit("m_user/saveUserinfo");  
    },  
    //将userinfo存储到本地  
    saveUserinfo(state) {  
      sessionStorage.setItem("tx-qxl-userinfo", JSON.stringify(state.userinfo));  
    },  
  },
2022-07-20 10:55 负责人:无 分享
已邀请:
DCloud_UNI_WZF

DCloud_UNI_WZF

测试 HBuilderX 3.5.3 创建默认项目模板,vue2 如下代码没有问题

import Vue from 'vue'  
import Vuex from 'vuex'  

Vue.use(Vuex);//vue的插件机制  

//Vuex.Store 构造器选项  
const store = new Vuex.Store({  
    state:{//存放状态  
        userInfo:{  
            name:'zs',  
            age:18  
        }  
    },  
     mutations: {    
        updateUserinfo(state, userInfo) {    
          state.userInfo = userInfo  
        }  
      },  
})  
export default store
<script>  
    export default {  
        data() {  
            return {  
                title: 'Hello'  
            }  
        },  
        onLoad() {  
        },  
        computed:{  
            isPermission(){  
                return this.$store.state.userInfo.age>18  
            }  
        },  
        methods: {  
            changeUserAge(){  
                this.$store.commit('updateUserinfo',{'name':'zs',age:20})  
            }  
        }  
    }  
</script>

要回复问题请先登录注册