`map.getCanvas()`方法在React中无法正常运行

问题描述 投票:0回答:1

我的目标是使用

componentDidMount()
函数将画布导出为 .png 格式。虽然
getShortSnap()
第一次工作正常,但第二次却无法按预期工作。

这是我的代码:

class Map extends Component {
    getShortSnap = (fileName) => {this.map.getCanvas().toBlob((blob) => {console.log(blob);})

    componentDidMount() {
        this.map = new mapboxgl.Map({
            container: "map",
            zoom: 1,
            center: [0, 0],
            maxZoom: 17.4,
            style: baseMaps
        });
    
        this.map.on("load", () => {
            this.getShortSnap() // print -> Blob{size:1212321,type:"image/png"}  it is the first
            setTimeout(()=>{
                this.getShortSnap() //print -> Blob{size:31295,type:"image/png"} it is the second
            },5)
        })        
    }
}

为什么结果不同?

我希望两个结果是一致的。

reactjs canvas mapbox-gl
1个回答
0
投票

你能修复这个错误吗?

© www.soinside.com 2019 - 2024. All rights reserved.