reactjs - 未捕获的类型错误:无法读取未定义的属性“addLayer” - PixiOverlay
问题描述
这是我的代码:
import React, { PureComponent } from 'react';
import { PixiOverlay } from 'react-leaflet-pixi-overlay';
import { Map, TileLayer } from 'react-leaflet';
import { renderToString } from 'react-dom/server';
class PixiOverlayClass extends PureComponent {
render() {
const markers = [
{
id: 'randomStringOrNumber',
iconColor: 'red', // colors: https://github.com/pointhi/leaflet-color-markers
position: [-37.814, 144.96332],
popup: renderToString(<div>All good!</div>),
onClick: () => alert('marker clicked'),
tooltip: 'Hey!',
},
{
id: '2',
position: [-37.814, 144.96332],
popup: 'Quack!',
popupOpen: true, // if popup has to be open by default
onClick: () => alert('marker clicked'),
tooltip: 'Nice!',
},
];
return (
<React.Fragment>
<Map
preferCanvas
maxZoom={20}
minZoom={3}
center={[-37.814, 144.96332]}
// Other map props...
>
<TileLayer
url="https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png"
attribution="©
<a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>
contributors"
/>
<PixiOverlay markers={markers} />
</Map>
</React.Fragment>
);
}
}
export default PixiOverlayClass;
这只是简单的代码。
我已经添加了所有的依赖leaflet、leaflet-pixi-overlay、pixi.js、react、react-leaflet、use-leaflet
但我仍然收到错误:
TypeError:无法在 PixiOverlay.jsx:69 处读取 NewClass.addTo (leaflet-src.js:6559) 处未定义的属性“addLayer”
它在内部调用——
addTo: function (map) {
map.addLayer(this);
return this;
},
这是未定义的。谁能帮我这个?
解决方案
升级react-leaflet 版本有效。谢谢@DrewReese
对于在 commitHookEffectListUnmount (react-dom.development.js:19710) 处无法读取 PixiOverlay.jsx:154 处未定义的属性 'getContainer'这个错误,我将 props zoom传递给 map 并且它起作用了
推荐阅读
- flutter - 如何通过火焰库在正方形上制作蓝色半透明覆盖
- .net - Serilog 中有没有办法过滤以某个关键字开头的消息?
- mpi - 如何使用 mpiexec 避免 libpciaccess 初始化错误
- javascript - 当我在下拉菜单上选择一个选项时更改 Slick Image (SHOPIFY)
- spring - 如何从依赖项 jar 中修改 bean 中私有字段的值?
- python - python将数组保存到不同长度的csv
- javascript - 无法在 Typescript 的 ES6 类的构造函数中返回自定义对象
- javascript - iframe 画布在 Safari 桌面上没有声音
- javascript - Javascript请求本地服务器不是ec2服务器
- image - 如何将图像保存为文本文件?