reactjs - 错误:“视口”已在上层范围内声明
问题描述
我正在研究 React-Map-GL,我对它非常陌生。我已将此代码添加到我的 react-app 中,但出现如下错误:
第 28 行:'viewport' 已在上层范围内声明
它使用:“eslint-config-airbnb”
先感谢您
import React from 'react'
import ReactMapGL from 'react-map-gl'
const REACT_APP_MAPBOX_TOKEN =
'XXXMAPBOXAPIXXX'
class Map extends React.Component {
state = {
viewport: {
width: 400,
height: 400,
latitude: 37.7577,
longitude: -122.4376,
zoom: 8,
},
}
render() {
const { viewport } = this.state
return (
<ReactMapGL
{...viewport}
mapboxApiAccessToken={REACT_APP_MAPBOX_TOKEN}
onViewportChange={viewport => this.setState({ viewport })}
/>
)
}
}
export default Map
解决方案
在您的render
方法中,您viewport
从解构this.state
,然后调用onViewportChange
同名的内部变量。您不能对 2 个变量使用相同的名称,这就是您收到错误的原因。
写这个的正确方法是 -
render() {
const { viewport } = this.state
return (
<ReactMapGL
{...viewport}
mapboxApiAccessToken={REACT_APP_MAPBOX_TOKEN}
onViewportChange={newViewport => this.setState({ viewport: newViewport })}
/>
)
}
推荐阅读
- javascript - 当我将箭头功能更改为简单功能时,React -JS 计时器没有更新?
- xamarin - 在角 xamarin 表单中创建三角形
- c# - unity vuforia 跟踪目标的显示速度
- html - 模拟 colspan 的 CSS DIV 表
- python - Python3通过列表构造函数构造地图对象时出错
- c# - Instantiate() 函数正在实例化克隆
- python - Sqlalchemy - 异常时回滚
- android - 当应用程序在任何地方崩溃时如何显示屏幕
- cloud - 如何在 IBM watson 聊天机器人中调用外部 API 并在聊天机器人的对话框中显示响应
- java - Nodejs Crypto ECDH PublicKey Hex as X.509