javascript - React Native Maps - 标记 onPress 调用多个事件
问题描述
当尝试在 onPress Marker 事件中调用多个事件时,我遇到了一个问题。
这个想法是:
- 将标记加载到地图中
- 使标记居中(单击)
- 根据选定的标记更新状态
- 调用表达式以打开底部工作表
这个例子效果很好,第一点和第二点
<Marker
key={i}
image={require('../assets/marker.png')}
onPress={() =>
mapView.animateToRegion({
latitude: Number(dev.lat),
longitude: Number(dev.lng),
latitudeDelta: 0.0432,
longitudeDelta: 0.0423
},300)
}
calloutAnchor={{
x: 0.6,
y: 0,
}}
coordinate={{
latitude: Number(dev.lat),
longitude: Number(dev.lng),
}}
>
此示例仅调用函数 animateToRegion 即可正常工作,但如果替换为另一个函数以调用其他事件,则此特定事件无法按如下方式工作。
const bs = React.createRef()
function goto (index) {
bs.current.snapTo(index) // reference to bottomsheet
}
function loadGaz(dev) {
setSelectedGas(dev) // state update
}
function mapCenter (dev) {
mapView.animateToRegion({
latitude: Number(dev.lat),
longitude: Number(dev.lng),
latitudeDelta: 0.0432,
longitudeDelta: 0.0423
},300)
}
function x (dev) {
mapCenter (dev) // center marker into screen
loadGaz(dev) // state to data into bottomsheet
goto(0) //show bottom sheet
}
// If I remove others functions (loadGaz and goto) everything works fine.
<Marker
key={i}
image={require('../assets/marker.png')}
onPress={() => x(dev)}
calloutAnchor={{
x: 0.6,
y: 0,
}}
coordinate={{
latitude: Number(dev.lat),
longitude: Number(dev.lng),
}}
>
好吧,我想我犯了一些错误,我要感谢你的支持..
感谢社区..
解决方案
推荐阅读
- javascript - Angular 4 - 反应式表单启用/禁用不起作用
- java - 如何注释作为一个外部模型的请求正文?
- c++ - 如何拒绝被调用的进程写入继承的控制台窗口
- python - git review 抱怨 requests.packages.urllib3 但软件包已安装
- ios - UICollectionView 更新无效
- jenkins - 使用 SSH 跳转主机配置 Jenkins
- java - Java 8 过滤集合中特定列的值
- sql - 加入日期间隔为 5 分钟的表(获取平均值)
- javascript - html 输入 ng-directive 不会在更改时更新值
- c++ - 分配抽象类类型“CObject”的对象