Day08地图下钻

1.页面

地图下钻:
·给地图绑定单击事件
·重新渲染地图:依赖地图名称、jso数据、学生分布情况的展示
重新渲染地图的过程和上次渲染地图的过程是一样的,可以将渲染地图的过程封装为一个函数,点击后再次调用即
可=>类似与递归
渲染了地图:
1.在useEffect中初始化echarts
2.发请求,获取地图数据
3.注册地图,设置了地图名称和地图的son数据
4.修改option
5.给地图放入学生分布情况数据

  • 发请求,获取分布情况数据
  • 修改option

6.设置option

7.给echarts绑定单击事件

  • 将上面渲染地图的代码封装在一个函数中
  • 调用这个函数,地图名称、json数据需要修改
  • 修改这个函数,给函数传入两个参数,地图名称,获取地图数据需要adcode,第一次调用就需要传递参

  • 再次调用,需要获取地图名称和adcode,在修改option的时候,给data中设置adcode数据,通过事件函数ata获取到没置好的数据,作为参数传递进去下钻后的回退
  • 解绑单击事件

下钻后的回退

  1. 给图表绑定右击事件
    。修改之前单击事件代码,需要在外面定义数组模拟栈数据结构,每次渲染地图后都将当前地图需要的地图
    名称以及地图请求路径中需要的adocde存储在栈中
    。从栈中扔出去一个数据,从栈中拿到最后一个数据(包含地图名称和adcode)用于渲染新地图
    。解绑右击事件
    ES6提供的Promise专门用于解决回调地狱的语法:

        let p1 new Promise((rseolve,reject)=>
        执行代码
                成功了==>调用reso1ve(1)处理响应数据的代码不在这里写
                失败了=>调用reject(2)
                })
                p1.then(数据=>{
                处理响应数据的代码在这里,这里的参数数据就是响应回来的数据
                })
                外面的promise的then方法中如果返回一个里面的promise对象,那么里面的promise对象的then方法就可以跟外面promisel的then方法形成链式操作了

let p1= new Promise((rseolve,reject)=>{
执行代码
成功了==>调用reso1ve(1)处理响应数据的代码不在这里写
失败了==>调用reject(2)
})
p1.then(数据=>{
处理响应数据的代码在这里,这里的参数数据就是响应回来的数据
let p2 =new Promise((resolve,reject)=>{
resolve(3)
})
//本来应该写在这里的then
return p2
})
.then(res=>{//这里里面p2的then方法
//当这个then执行的时候,上面那个then执行结束了
//当下面这个then执行的时候,这两次请求都响应成功了
})
.catch(err=>{//这个cateh并不属于任意一个promise对象
//当上面的promise对象们,其中的任意一个只要错误了就会执行
3)

  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值