首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击列表项时动画标记- google-maps-react

单击列表项时动画标记- google-maps-react
EN

Stack Overflow用户
提问于 2018-07-04 01:46:49
回答 1查看 1.3K关注 0票数 0

我已经和google-maps-react一起构建了一个项目。

我有这个组件结构

代码语言:javascript
复制
<App />
--- <FilterLocations />
------ <LocationsList />
--- <GoogleMaps />
------ <Marker />

我单击<LocationList />中的一项,希望它在<GoogleMaps />组件(由包提供的<Marker />组件表示)中显示相应的标记。

因此,在<GoogleMaps />组件中,我有以下代码片段:

代码语言:javascript
复制
{locations.map(location =>
   <Marker
      key={location.key}
      title={location.title}
      name={location.name}
      position={location.position}
      onClick={this.onMarkerClick}
      animation={(currentMarker === location.title)
         && this.props.google.maps.Animation.BOUNCE}
   />
)}

currentMarker处于<App />状态,当我们单击<LocationsList />中的项目时会更新该状态,它是一个等于location.title的字符串。

因此,当我使用ReactDevTools时,我看到动画道具被正确地设置为1,但它仍然不反弹。

有什么想法吗?

这是GitHub上的整个项目。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-08-11 07:19:51

似乎你决定删除这个项目,以防你仍然对答案感到好奇,或者其他任何人可能需要它-在我的项目中,这是有效的:

我使用纪录片here中提供的函数设置了我的项目。因此,在使用提供的activeMarker时,我设法通过在组件中添加以下行来在单击时获得标记反弹:

代码语言:javascript
复制
 {filterLocations.map((item) => {
    return (    
    <Marker
      animation={activeMarker ? (item.name === activeMarker.title ? '1' : '0') : '0'} 
    />
 )
})}

是的,这就是全部,不需要额外的功能。(假设您已经让标记响应列表项上的.click()。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51160344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档