使用props接收的数据,调用结果为空

在vue中,很多时候都要使用props来进行父子通信,可是代码里总会出现各式各样的问题。
使用props接收的数据,为什么在子组件中显示不出来?
原因是因为:
在数据还没有被赋值的时候,子组件就已经显示在页面上了,所以子组件是拿不到父组件里的数据的。
解决方法:
给子组件添加一个if判断 如果有这条数据,在显示该组件
在这里插入图片描述
如果你的数据类型是数组:

let echartData = [1,2,3];

<Echarts v-if='echartData.lengtn > 0' :echartData='echartData'></Echarts>

如果你的数据类型是对象:

let echartData = {a:1,b:2,c:3};

<Echarts v-if='echartData' :echartData='echartData'></Echarts>
假设您已经使用 Vue CLI 创建了项目并安装了需要的依赖,接下来是如何实现点击按钮后表格通过 props 接收数据并显示的步骤。 1. 创建一个子组件 Table.vue,该组件将通过 props 接收数据并渲染表格。 ``` <template> <div> <table> <thead> <tr> <th>名称</th> <th>价格</th> </tr> </thead> <tbody> <tr v-for="(item, index) in items" :key="index"> <td>{{ item.name }}</td> <td>{{ item.price }}</td> </tr> </tbody> </table> </div> </template> <script> export default { props: { items: Array, }, }; </script> ``` 2. 在父组件中定义数据源和方法,在点击按钮时调用方法获取数据并将数据传递给子组件 Table.vue。 ``` <template> <div> <button @click="getData">获取数据</button> <table-component :items="data"></table-component> </div> </template> <script> import Table from "./Table.vue"; export default { components: { TableComponent: Table, }, data() { return { data: [], }; }, methods: { getData() { // 假设数据源是一个数组 const newData = [ { name: "商品1", price: 10 }, { name: "商品2", price: 20 }, { name: "商品3", price: 30 }, ]; this.data = newData; }, }, }; </script> ``` 3. 在父组件中引入和使用子组件 Table.vue,将数据源作为 props 传递给子组件。 ``` <template> <div> <button @click="getData">获取数据</button> <table-component :items="data"></table-component> </div> </template> <script> import Table from "./Table.vue"; export default { components: { TableComponent: Table, }, data() { return { data: [], }; }, methods: { getData() { // 假设数据源是一个数组 const newData = [ { name: "商品1", price: 10 }, { name: "商品2", price: 20 }, { name: "商品3", price: 30 }, ]; this.data = newData; }, }, }; </script> ``` 现在您点击按钮就可以通过 props 接收数据并在子组件中渲染表格了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雾里桃花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值