huiyan-fe / react-bmap

基于百度地图JavaScript API封装的React组件库
http://huiyan-fe.github.io/react-bmap
MIT License
497 stars 97 forks source link

地图mapStyle问题 #47

Closed Lpbzzz closed 5 years ago

Lpbzzz commented 6 years ago

现在有一个需求是修改地图的mapStyle: image 下拉框修改地图样式,但却没生效,不知为何,还望解答。谢谢

Junior2Ran commented 6 years ago

能否提供更加详细的信息?现在没法判断定位问题都原因

Lpbzzz commented 5 years ago

虽然现在没这样的需求,但是还是想问一下,想达成这样的功能:把mapstyle存在state里,当setstate({mapstyle:任意的style}),地图的样式随之改变

Junior2Ran commented 5 years ago

可以,写个changeMapStyle方法

changeMapStyle(style) {
    this.setState({
        style: style
    });
    this.props.map.setMapStyle({style: style});
}
Lpbzzz commented 5 years ago

不好意思。。setMapStyle 这是个react-bmap里的API吗?this.props.map指的是 _20181220115926这个吗?

Junior2Ran commented 5 years ago

1.setMapStyle是百度地图原生的jsapi,所以要获取到原生js的map实例化对象。react-bmap也将这个map对象放到了每个子组件的props里

return React.Children.map(children, child => {
    if (!child) {
        return;
    }
    if (typeof child.type === 'string') {
        return child;
    } else {
        return React.cloneElement(child, {
            map: this.map
        });
    }
})

2.是的