uni app 问题记录

一、当我在调用store时报错: Cannot read property 'state' of undefined

具体代码如下图

 

解决过程:

各种尝试有点无计可施,感谢网友哪种分享,给了我解决的思路,所以我把我的解决过程及最终方案也分享给大家,希望能帮忙到别人。

1、新建简单test页。先test页直接引用store.js

 先是报错,发现原来 vue3 不可以直接以 import Vue from 'vue' 引用。

在store.js中去掉 import Vue from 'vue'   、Vue.use(Vuex) ,修改如下,成功调用。

import store from '@/store/store.js'
methods: {
            increment () {
            
                store.commit('increment')
                console.log(store.state.count)
            }
        }

2、在mian.js 挂载,通过this.$store.state.count 调用。

 一直会报 Cannot read property 'state' of undefined

先是在mian.js中增加打印:console.log('main.js来了。不是vue3环境 - 执行代码块') 、console.log('是vue3环境 - 执行代码块')

打印结果说明我是vue3版本。之前我一直在// #ifndef VUE3  块中尝试说明地方就搞错了。

一直报错,说明就是挂载不成功。最后了如下修改解决。

app.use(store) 挂载。要注意挂载的地方。如果有帮助到你,多多支持,能帮助到更多的人。
// #ifdef VUE3
console.log('是vue3环境 - 执行代码块')
import {createSSRApp} from 'vue'
import App from './App.vue'
import store from '@/store/store.js'
console.log('mian中:'+store.state.count)
export function createApp() {    
    const app = createSSRApp(App)
    app.use(store)
    return {
        app,
        store
    }
}
// #endif

 二、module namespace not found in mapState()

// 从 vuex 中按需导出 mapState 辅助方法
    import {mapState} from 'vuex'
    
    export default {
        computed:{
            ...mapState('m_cart',['cart'])
        },

如上图代码报错,原因:找到 cart 对应的js文件,在当中开启命令空间

    //为当前模块开启命令空间
    namespaced:true,

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章