父组件传递数据给子组件,子组件接收数据为空了
产品详情页传递获取的数据给子组件渲染,但是子组件接收后数据就没了
父组件代码
<template>
<div class="product">
<div class="p-header-wrap">
<product-header></product-header>
</div>
<div class="p-content">
<me-scroll>
<product-slider :picDatas="items"> </product-slider>
<product-content :contentDatas="contents">
</product-content>
</me-scroll>
</div>
</div>
</template>
<script>
import ProductSlider from './slider';
import {getProductDetail} from 'api/product';
import ProductHeader from 'pages/product/header';
import ProductContent from 'pages/product/content';
import MeScroll from 'base/scroll';
export default {
name: 'Product',
components: {
ProductHeader,
ProductContent,
MeScroll,
ProductSlider
},
data(){
return {
items: [], //保存幻灯片数据,传递给子组件
contents: {} //保存产品信息内容,传递给子组件
}
},
created(){
this.getData();
},
methods: {
//获取幻灯片数据
getData(){
getProductDetail(this.$route.params.id).then(data =>{
this.items = data.data.item.images;
this.contents = data.data; //该数据传递给子组件,数据为空了
console.log(this.contents)
})
}
}
};
</script>
<style scoped>
@import "~assets/scss/mixins";
.product {
overflow: hidden;
position: absolute;
top: 0;
left: 0;
z-index: $product-z-index;
width: 100%;
height: 100%;
background-color: $bgc-theme;
}
</style>子组件代码
<template>
<div class="wraper">
<me-loading v-if="!contentDatas.length"></me-loading>
<div class="content-wraper" v-if="contentDatas.length">
<div class="base-info">
<div class="price-sales">
<p class="p-price">¥<span class="p-price-num">311</span></p>
<p class="p-sales">122已售</p>
</div>
<div class="p-des">
<p class="p-title">工装裤男士秋季潮牌束脚韩版潮流运动休闲长裤子宽松秋冬2019新款</p>
<p class="p-mix-info">
<span class="p-delivery">快递包邮</span>
<span class="month-sales">7415</span>
<span class="p-place">浙江嘉兴</span>
</p>
</div>
</div>
</div>
</div>
</template>
<script>
import MeLoading from 'base/loading';
export default{
name: "ProductContent",
props: {
contentDatas: {
tyle: Object,
default: {}
}
},
components: {
MeLoading
},
data(){
return {
datas: this.contentDatas
}
},
created(){
console.log(this.contentDatas)
},
methods: {
}
}
</script>
<style scoped>
@import "~assets/scss/mixins";
.price-sales{
background-color:$linear-gradient-bgc;
}
</style>父组件中打印出来的数据

子组件中打印出来的数据:没有数据了

2、从接口https://unszacs.m.taobao.com/h5/mtop.taobao.detail.getdetail/6.0/获取到的数据,找了好久,没有找到价格和销量在哪里
12
收起
正在回答 回答被采纳积分+1
3回答
技术为王2383098363
2019-10-17 11:31:42
import axios from 'axios';
import jsonp from 'assets/js/jsonp';
import {SUCC_CODE, TIMEOUT, HOME_RECOMMEND_PAGE_SIZE, jsonpOptions} from './config';
// 获取商品详情页数据--jsonp
export const getProductDetail = id => {
console.log(id);
const url = 'https://unszacs.m.taobao.com/h5/mtop.taobao.detail.getdetail/6.0/';
const params = {
api: 'mtop.taobao.detail.getdetail',
ttid: '2017@taobao_h5_6.6.0',
data:`{"itemNumId":"${id}"}`,
appKey: 12574478,
dataType: 'jsonp',
v: '6.0'
};
return jsonp(url, params, jsonpOptions).then(res => {
if (res) {
return res;
}
throw new Error('没有成功获取到数据!');
}).catch(err => {
if (err) {
console.log(err);
}
}).then(res => {
return new Promise(resolve => {
setTimeout(() => {
resolve(res);
}, 1000);
});
});
};api/product.js文件代码
相似问题
登录后可查看更多问答,登录/注册
4.Vue与React高级框架开发
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程



子组件中:


恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星