vue封装自定义组件,异步加载数据,渲染组件,子组件没接收到

在公司商城项目的首页装修业务中,遇到一个问题:后端提供了配置字段,需要将JSON数据保存并能正确回显。通过调整代码,如将数据解析和处理为对象数组,解决了组件无法正常渲染和回显数据的问题。尝试了子组件监听和v-if等方法,最终实现了数据的正确显示。
摘要由CSDN通过智能技术生成

 

目录

这是接口文档

 这是定义的配置

这是原型图

 还有个详情接口,就是回显

组件渲染方式

 解决办法

公司商城项目,需要做一个首页装修的业务,后端给我每个一个分类设置了一个字段,我需要自己配置传入json,保存之后可以回显

这是接口文档

 这是定义的配置

 

这是原型图

 还有个详情接口,就是回显

async getHomeDecorate () {
      const { data: { data } } = await getHomeDecorate()
      this.shopLogo = {}  
      this.loginPageImg = []
      this.indexSpaceTime = 0
      this.indexImg = []
      this.imgAdLayout = []
      // 现在的写法
      // this.shopLogo = [JSON.parse(data.shopLogo) || {}]
      // 以前的写法
      this.shopLogo = JSON.parse(data.shopLogo) || {}
      this.loginPageImg = JSON.parse(data.loginPageImg) || []
      this.indexSpaceTime = JSON.parse(data.indexSpaceTime) || 0
      this.indexImg = JSON.parse(data.indexImg) || []
      this.imgAdLayout = JSON.parse(data.imgAdLayout) || []
    },
    async saveHomeDecorate () {
      const data = {
        shopLogo: JSON.stringify(this.shopLogo[0]),
        // 登陆页轮播图片
        loginPageImg: JSON.stringify(this.loginPageImg),
        //  轮播间隔
        indexSpaceTime: JSON.stringify(this.indexSpaceTime),
        // 轮播图片
        indexImg: JSON.stringify(this.indexImg),
        // 图片广告组
        imgAdLayout: JSON.stringify(this.imgAdLayout)
     }

组件渲染方式

对象形式的传递过去第一时间是接收不到的,刷新也没用,但是你到编辑器里重新保存编译后,数据就回显来了,我开始的想法是组件没有像下面循环的组件绑定对应的key,我给他手动绑定也是无效的,一样回显不了子组件接收不到数据

 

 解决办法

改成对象数组就可以正常回显,当然网上还有其他的解决办法,比如子组件监听父组件传的数据(试过没用,根本就没传数据过来),v-if啥的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值