vue warn Error in render: “TypeError: Cannot read properties of undefined (reading ‘0‘)“

我遇到这个问题是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往上加静态的属性,可能不算是基本状态参数,所以组件读不了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值