问题记录:地图数据状态没有实时更新问题

问题:在地图上显示的点位信息没有实时更新,接口已经返回数据了,我也成功赋值了。

解决方法:

这是我的点位位置信息

      mapData: [
        {
          //苏州中心地铁站
          name: '苏州中心',
          // 名称坐标
          nameX: '77.91%',
          nameY: '29.7%',
          // 当前状态
          status: 1,
          //点位
          x: '47%',
          y: '35%',
          // 弹出框坐标
          floatWindowX: '-562px',
          floatWindowY: '-70px',
          isShow: false,
          //选中放大
          isShow2: false,
          url: '1',
          stationCode: 'CQLPHJDZ',
          bigX: '77.91%',
          bigY: '29.7%',
          size: '22px',
        }...]

可以看见我的定位信息是页面上写死固定了,但是需求是:站点的点位状态会变化,页面需要实时响应,下面是我接口调用的方法,这个问题很简单,但是粗心的话会很容易忽略,就是因为点位状态和接口返回的点位状态字段不一样,而我页面上定义的数据结构字段status并没有接口返回的字段stationStatus,就导致了接口字段会因为字段不存在而响应式失败。

    async getStationPosition() {
      const res = await stationPosition()
      console.log('1111110站点信息获取', res)
      console.log('地图信息', res)
      if (res.code == '200') {
        this.treeData = res.result
        //非常关键,初始化 stationStatus,这样后续接口更新值时就不会因为字段不存在而响应失败,地图上的圆点颜色就可以进行联动
        this.mapData = this.mapData.map((item) => ({
          ...item,
          stationStatus: '0', // 或 null,确保字段存在
        }))
        //
        this.treeData.forEach((item) => {
          this.mapData.forEach((i) => {
            if (item.stationName == i.name) {
              i.stationStatus = item.stationStatus
            }
          })
        })
        console.log('mapData>>>>>>>>>>>>>>>>>>>>', this.mapData)
      }
    },

所以如果定义的字段不存在,那么即使接口返回字段也会失去响应式。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

前端万古长青

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

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

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

打赏作者

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

抵扣说明:

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

余额充值