我遇到这个问题是vuex报错
在这里插入图片描述

原因

state里面没有初始化数组

解决办法

state

const state = {
  // 设定初始值 初始值要根据接口返回的数据进行计算
  groupMenuitems: [],
  detailtype: [],
  //加上原始状态参数
  detail:[]
  // menuitemsGroup:[]
};

解释

原因是vuex没有进行数据代理
mutations

  Getdetail: (state, detail) => {
    state.detail = detail;
    console.log("state")
    console.log(state)
    console.log("state.detail")
    console.log(state.detail)
  },

state

const state = {
  // 设定初始值 初始值要根据接口返回的数据进行计算
  groupMenuitems: [],
  detailtype: [],
  // detail:[]
  // menuitemsGroup:[]
};

vuex里面还有能看见
在这里插入图片描述但是home组件完全看不见了

  computed: {
    ...mapState({
      detail: (state) => {
        console.log("state.home.detail");
        console.log(state.home.detail);
        return state.home.detail;
      },
    }),
  },

在这里插入图片描述

这个主要是因为state里面没有放原始数组 导致它没有动态的代理 虽然有这个属性 但是在组件里面是读不到的 console.log打印对象的时候又能打印出来store里面是有这个属性 但是没有进行数据代理 没有办法进行响应式更新

state作为构造器选项,定义了所有我们需要的基本状态参数。

看到博客的一句话,感觉还是蛮有道理的,没有写参数,直接用actions、mutation往上加静态的属性,可能不算是基本状态参数,所以组件读不了

Logo

前往低代码交流专区

更多推荐