- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 create-react-app 和 Polyline
的基本渲染测试时遇到了一些问题。来自 react 传单的组件。每当我尝试添加 Polyline
小时候给我的Map
,我收到测试错误消息:TypeError: Cannot read property '_layerAdd' of null
. map 和折线在浏览器中仍然显示得很好,但是这个测试错误有点烦人。
有没有人遇到过同样的问题?如果是这样,您是如何解决的?
我已经看到了一些类似的问题,但在使用 react-leaflet 时还没有真正的答案。我尝试将 map 渲染绑定(bind)到 componentDidMount
,但没有运气。
这是我的 map 渲染:
render() {
return (
<Map
animate={this.state.animate}
center={this.state.latlng}
length={4}
onClick={this.handleClick}
zoom={13}
>
<TileLayer
attribution='&copy <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
url="https://{s}.tile.openstreetmap.se/hydda/full/{z}/{x}/{y}.png"
/>
<Marker position={pathPoints[0]} />
<Marker position={pathPoints[pathPoints.length - 1]} />
<Polyline color="red" positions={pathPoints} />
</Map>
);
}
}
最佳答案
其实和react-leaflet
没有关系图书馆。宣传单 Polyline
使用 SVG
renderer (默认)但 JSDOM附带Jest Create React App 的测试运行程序,不完全支持 SVG(特别是 createSVGRect
is not supported )。这基本上就是发生指定错误的原因。
如何配置 Create React App 以通过测试?
它需要被视为一种解决方法,但其想法是扩展 JSDOM SVGSVGElement
通过介绍createSVGRect
作为一个空函数。该技术将允许在 JSDOM 中模拟 SVG 支持,以便通过矢量覆盖(如 Polygon)的 Jest 测试
在 src
下目录创建一个名为 setupTests.js
的文件并提供以下代码:
var createElementNSOrig = global.document.createElementNS
global.document.createElementNS = function(namespaceURI, qualifiedName) {
if (namespaceURI==='http://www.w3.org/2000/svg' && qualifiedName==='svg'){
var element = createElementNSOrig.apply(this,arguments)
element.createSVGRect = function(){};
return element;
}
return createElementNSOrig.apply(this,arguments)
}
关于jestjs - 修复 react 传单测试错误 : Cannot read property '_layerAdd' of null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54382414/
我是一名优秀的程序员,十分优秀!