vue 父组件获取接口值传到子组件_vue 项目中 “父组件” 异步获取数据之后,传递给子组件不显示...

在Vue项目中,父组件(transaction)通过axios异步获取接口数据并赋值给transactionList,但在子组件(transactionList)中无法显示。数据获取成功并已正确赋值,但子组件的v-for循环未更新。子组件通过props接收list参数,数据类型为Array。问题可能在于数据更新时,子组件未能监听到父组件的变更。
摘要由CSDN通过智能技术生成

有两个组件:一个为 transaction(父组件),一个为 transactionList (子组件);

上图为一个列表页,为父组件,在父组件里面的data中定义了数据列表,

template中:

js中:

data () {

return {

transactionList: [...]

}

}

子组件通过 props 接受一个 list 显示出来没有问题。

但是,问题是,现在这些数据我通过 axios 取得:

methods: {

getTransData () {

axios.get(httpUrl.getTransData)

.then(res => {

console.log(res.data.transData)

this.transactionList = res.data.transData

})

.catch(err => console.log(err))

}

},

created () {

this.getTransData()

}

created 的时候把数据获取到,然后赋值给 data 中的 transactionList ,

因为使用了 axios 获取数据,所以 data 中的 transactionList 为空数组:

transactionList: [ ]

但是这样写完之后,页面什么也不显示了,控制台输出之后发现数据也获取到了, 赋值给 this.transactionList 也成功了,但是貌似是没有传到子组件中,这是为什么?

子组件:

v-for="item in items"

:class="[item.status ? 'green' : 'red']">

交易金额:{{ item.tstMoney }} 元

取消消费:{{ item.tstMoney }} 元

{{ item.tstTime }}

消费门店:{{ item.tstAddress }}

预存支付:{{ item.tstJifen }}

积分支付:{{ item.tstYucun }}

其他支付:{{ item.tstElse }}

export default {

props: {

list: {

type: Array,

default: []

}

},

data () {

return {

items: this.list

}

}

}

父组件:

import transactionList from '../components/transactionList'

import axios from 'axios'

import { httpUrl } from '../../http_url.js'

export default {

components: {

transactionList

},

data () {

return {

transactionList: []

}

},

methods: {

getTransData () {

axios.get(httpUrl.getTransData)

.then(res => {

// console.log(res.data.transData)

console.log(this.transactionList)

this.transactionList = res.data.transData

console.log(this.transactionList)

// console.log(this.transactionList)

})

.catch(err => console.log(err))

}

},

created () {

this.getTransData()

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值