item未定义是什么错误啊/

来源:4-3 热卖推荐--结构和样式

慕妹2075046

2019-09-10 14:24:31

<template>

    <div class="recommend">

        <h3 class="recommend-title">热卖推荐</h3>

        <ul class="recommend-list">

            <li class="recommend-item"

            v-for="(item,index) in recommends" :key="index">

                <route-link class="recommend-link" 

                :to="{name:'home-product',params:{id:item.baseinfo.itemId}}">

                <!-- 通过数据中的itemId来跳转到相应页面 -->


                <p class="recommend-pic"><img class="recommend-img" v-lazy="item.baseinfo.picUrlNew"></p>

          <p class="recommend-name">{{item.name.shortName}}</p>

          <p class="recommend-origPrice"><del>¥{{item.price.origPrice}}</del></p>

          <p class="recommend-info">

            <span class="recommend-price">¥<strong class="recommend-price-num">{{item.price.actPrice}}</strong></span>

            <span class="recommend-count">{{item.remind.soldCount}}件已售</span>

          </p>

                </route-link>

            </li>

        </ul>

    </div>

</template>


<script>

import {getHomeRecommend} from 'api/home';


export default {

    name: 'HomeRecommend',

    data(){

        return {

           recommends: [],

           curPage: 1,

           totalPage: 1

        }

    },

    created() {

        this.getRecommend();

    },

    methods:{

        getRecommend(){

            if(this.curPage > this.totalPage){

                return;

            }

            getHomeRecommend(this.curPage).then(data => {

                if(data){

                    console.log(data);

                    this.curPage++;

                    this.totalPage = data.totalPage;

                    this.recommends = this.recommends.concat(data.itemlist);

                }

            })

        }

    },

};

</script>


<style lang="scss" scoped>

@import "~assets/scss/mixins";

    .recommend{

        &-title{

            position:relative;

            width:100%;

            padding :10px 0;

            font-size: $font-size-l;

            text-align: center;


        &:before,

        &:after{

            content: '';

            position: absolute;

            top:50%;

            width: 40%;

            height: 1px;

            background-color: #ddd;

        }


        &:before{

            left:0;

        }

        &:after{

            right:0;

        }

        &-list{

            @include flex-between();

            flex-wrap: wrap;

        }

        &-item{

            width: 49%;

            background-color: #fff; 

            box-shadow: 0 1px 1px 0 rgba(0,0,0,.2);

        }

        &-link{

            display:block;

        }

        //图片根据容器大小自适应宽高

        &-pic{

            //如何在不设置高的情况下使图片容器变成正方形,padding-top和margin-top都是相对于宽的,不是相对于高的

      position: relative;

      width: 100%;

      padding-top: 100%;

      margin-bottom: 5px;

    }


    &-img {

      position: absolute;

      top: 0;

      left: 0;

      width: 100%;

      height: 100%;

    }


    &-name {

      height: 36px;

      padding: 0 5px;

      margin-bottom: 8px;

      line-height: 1.5;

      @include multiline-ellipsis();

    }


    &-origPrice {

      padding: 0 5px;

      margin-bottom: 8px;

      color: #ccc;

    }


    &-info {

      @include flex-between();

      padding: 0 5px;

      margin-bottom: 8px;

    }


    &-price {

      color: #e61414;

    }


    &-price-num {

      font-size: 20px;

    }


    &-count {

      color: #999;

    }

  }


        

        }

    

</style>

[Vue warn]: Error in render: "TypeError: item is undefined" found in ---> <HomeRecommend> at src/pages/home/recommend.vue       <Home> at src/pages/home/index.vue         <App> at src/App.vue           <Root> vue.runtime.esm.js:619

TypeError: "item is undefined"

    3 vue-loader/lib/selector.js?type=template&index=0!./src/pages/home/recommend.vue:23

    10 VueJS

    3 vue-loader/lib/selector.js?type=template&index=0!./src/pages/home/recommend.vue:11

    VueJS 7


写回答

1回答

好帮手慕慕子

2019-09-10

同学你好, 老师在源码中测试你的代码, 没有出现和同学复制的一样错误。 

不过,可能是由于数据没有获取到, 导致报错,  同学代码中获取数据的itemList单词中L没有大写, 建议修改:

http://img.mukewang.com/climg/5d774f950001e97809010142.jpg

同学可以自己下去在测试一下, 如果还有问题, 可以再次提问, 我们会继续帮助您解答的

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~

0

0 学习 · 10739 问题

查看课程