请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

count报错提示undefined

html:

<template>

    <div class='shopcart-wrapper'>

      <transition name="fade">

        <div class="decrease" v-if="food.count >0" @click="decreaseGoods">

          <span class="icon-remove_circle_outline"></span>

        </div>

      </transition>

      <div class="count" v-if="food.count > 0">{{food.count}}</div>

      <div class="increase" @click="increaseGoods">

        <span class="icon-add_circle"></span>

      </div>

    </div>

</template>

script:

<script>

import Vue from 'vue'

export default {

  name: 'Shopcart',

  data () {

    return {

      hasGoods: 0

    }

  },

  props: {

    food: {

      type: Object

    }

  },

  methods: {

    decreaseGoods () {

      if (this.food.count) {

        this.food.count--

      }

    },

    increaseGoods () {

      if (!this.food.count) {

        Vue.set(this.food, 'count', 1)

      } else {

        this.food.count++

      }

      console.log(this.food)

    }

  }

}

</script>

对功能实现没有影响 就是一点击加入购物车之后就报错,如图:

https://img1.sycdn.imooc.com//szimg/5b8273bd0001de6517450768.jpg

正在回答

2回答

food 的 prop 没有默认值,你第一次传入的值就是 undefined

0 回复 有任何疑惑可以回复我~
  • 提问者 wangcheng3785233 #1
    我不明白 他的默认值怎么给。这个food是从父组件传递过来的,并不是为空,这个props只能去接受,老师的代码也并没有给默认值,只是接受,然后定义类型。
    回复 有任何疑惑可以回复我~ 2018-08-27 10:19:06
  • ustbhuangyi 回复 提问者 wangcheng3785233 #2
    你父组件有定义默认值吗,贴代码看看
    回复 有任何疑惑可以回复我~ 2018-08-27 17:03:41
  • 提问者 wangcheng3785233 回复 ustbhuangyi #3
    老师  我贴代码了 food 是在循环里边取得值
    回复 有任何疑惑可以回复我~ 2018-08-27 17:10:41
提问者 wangcheng3785233 2018-08-27 17:09:54

父组件

https://img1.sycdn.imooc.com//szimg/5b83bf360001f9da09290565.jpg

子组件

https://img1.sycdn.imooc.com//szimg/5b83bfd80001ef9306960747.jpg

0 回复 有任何疑惑可以回复我~
  • 你试着给 food 的 prop 加一个默认值 {} 呢
    回复 有任何疑惑可以回复我~ 2018-08-27 17:17:34
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信