子组件如何获取父组件 ajax 获取的数据
来源:6-6 首页 - 幻灯片组件(1)

吴阿铸
2017-05-05
<template> <div> <slide :list="list"></slide> </div> </template> <style> .slide-wrap{ padding-top: 20px; text-align: center; margin: 0 auto; } </style> <script> import slide from '../components/slideShow' export default { data() { return { list: [] } }, created(){ this.$http.get('/api/getSlides') .then( (data) => { let d = data.body this.list = d }, (err) => { console.log(err) } ) }, components: { //需要被注册的组件 slide } } </script>
案例里面的 slides 数据是在 index.vue 文件里本地写的一个数组,我把这个数组的数据用 ajax 获取在修改 this.list 这个数组, 可是到子组件 slide 里的时候这个数据还是为空.
slide 组件里的代码与老师课程里一样, 我在这个组件的 created 钩子函数里获取 this.list 就获取不到传过来的数据, 这些数据在父组件 ajax 成功的时候不应该重新把父组件里的 list:[] 重新 赋值了吗? 如果重新赋值了, 不是直接是响应式的么..
希望老师解答一下疑惑..
报错如下
在 db.json 文件里明明有这个字段
4回答
-
fishenal
2017-05-09
slides里是怎么取的url啊,
slides作为一个子组件,通过props拿到的list,你检查一下,应该是一个完整的对象,带url的。
this.$http.get('/api/getSlides')
.then(
(res) => {
let d = data.body
this.list = res.data
},
(err) => {
console.log(err)
}
)
子组件 mounted里看一下 this.list 是什么
00 -
fishenal
2017-05-07
ajax成功的回调 应该是data.data吧, 应该是 (res) => { let d = res.data } , 把返回的参数打印出来看看结构,我记得vue-resource是 res.data。
回调的参数会直接更新子组件的属性,这点没问题。
console里的对象,点开看,数据(db.json里的)存在哪个字段里。
022017-05-08 -
吴阿铸
提问者
2017-05-08
data.data 没问题, 可是传过去第一个 console.log 是我在 slide 组件里data() 里 console 的, 没有值... 并且报错没有这个key 值.. 可是我 db.json 明明有啊..
db.json { "getBordList": [ { "id":1, "title": "banner", "url": "/" }, { "id":2, "title": "counter 计数器", "url": "counter" }, { "id":3, "title": "开放产品3", "url": "home" }, { "id":4, "title": "开放产品4", "url": "home" } ], "getSlides": [ { "id": 1, "title": "幻灯片第1张", "src": "http://img.mukewang.com/5903688d000141fd12000460.jpg", "url": "http://imooc.com" }, { "id":2, "title":"幻灯片第2张", "src": "http://img.mukewang.com/590a9da300016c5612000460.jpg", "url": "http://imooc.com" }, { "id":3, "title":"幻灯片第3张", "src": "http://img.mukewang.com/590ad0ca00018d0b12000460.jpg", "url": "http://imooc.com" }, { "id":4, "title":"幻灯片第3张", "src": "http://img.mukewang.com/5903665f00011baa12000460.jpg", "url": "http://imooc.com" } ] }
00 -
吴阿铸
提问者
2017-05-07
@fishenal 老师求助啊
022018-02-03
相似问题