关于vue baidu map 右键菜单栏的坑

问题

最近做地图部分功能的时候用到了右键菜单栏这个功能,在用的过程中发现了一些小问题,现在也还不知道怎么回事,就先记录一下,欢迎大家来讨论。

这是vue baidu map中的文档

在百度地图中,我想通过在上下文菜单的回调函数callback添加一些自定义的参数来完成程序本身的功能,但是发现这种方法不可行。
如果我在callback函数里面传一个自定义的值时,地图初始化渲染的时候就会一直执行这个回调函数,相当于一个死循环。如果不加参数的话只有点击当前菜单项的时候才会进入当前回调函数。

<bm-context-menu>
	<!--该种传参方法会进入死循环-->
    <bm-context-menu-item :callback="gotoBeijing(1)" text="去北京"></bm-context-menu-item>
    <bm-context-menu-item :callback="gotoShanghai(1)" text="去上海"></bm-context-menu-item>
</bm-context-menu>

对于这种问题我也不知道是怎么回事,我自己理解的是只有右键应该才渲染并执行<bm-context-menu>里面的代码。
可能对于这个组件回调函数并不支持自定义传参,也有可能是我自己用错了。如果大家遇到过一样的问题或知道是怎么回事的大神解答一下。

对于这个问题,我特意去git上看了一下源码,对于callback这个函数并没有自定义参数这回事,它只有一个参数{ point,pixel,BMap,map,target:parent},这是一个object类型的参数,所以如果要传自定义参数的话只能本地改写源码,或者另找其他方案代替该方案。

 const menuItem = new BMap.MenuItem(item.text, function (point, pixel) {
          item.callback({
            point,
            pixel,
            BMap,
            map,
            target: parent
          })
        }, {
          width,
          id: item.id,
          iconUrl: item.iconUrl
})
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值