首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有什么方法可以让我从另一个页面(React-Native)导航到带有参数的标记?

有没有什么方法可以让我从另一个页面(React-Native)导航到带有参数的标记?
EN

Stack Overflow用户
提问于 2020-12-02 18:39:46
回答 1查看 127关注 0票数 1

我有一个页面上有标记的列表,当我单击一个按钮时,我想导航到地图上的标记。

这是list.js的简短版本:

代码语言:javascript
复制
export default class List extends Component {

    render() {

        const markerOneLocation = {
            latitude: 52.587374, 
            longitude: 5.137634,
            latitudeDelta: 0.3,
            longitudeDelta: 0.3,
       };

       const showMarkerOne = () => {
           this.props.navigation.navigate('Map', 
           {initialLocation: markerOneLocation});
       }; 

       return (
           <Text onPress={this.toggle}>
              <Text style={{fontSize: 15}} onPress= 
              {showMarkerOne} title='Marker1'> Marker 1 </Text>
           </Text>
       )
   }
}

这是map.js的简短版本:

代码语言:javascript
复制
   export default class Map extends Component {

       render() {
           return(
              <MapView
                style={{height: '100%', width: '100%'}}
                provider={PROVIDER_GOOGLE}
                region={{
                    latitude: 52.100748,
                    longitude: 5.646090,
                    latitudeDelta: 4,
                    longitudeDelta: 4,
                }}
              >
                <Marker
                  coordinate={{
                    latitude: 52.474772,
                    longitude: 5.197672
                  }}
                  anchor={{ x: 0.5, y: 0.5 }}
                >
                  <Image
                    source={require('../src/
                           logo_noshadow.png')}
                    style={{ width: 20, height: 20 }}
                  />
                </Marker>
              </MapView>
          )
      }
  }

所以当我点击按钮转到地图时。我希望地图导航到标记并将其显示在标记的中心。

我尝试添加一个markerId作为参数,但我不知道如何将它添加到标记中。

有人能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2020-12-02 18:54:12

在MapView上,您可以设置引用。在基于钩子的方法中,它看起来类似于:

代码语言:javascript
复制
const mapRef = React.useRef(null);

<MapView
    ref={mapRef}
    ... the rest of your settings
/>

我知道你使用的是基于类的方法,但是refs也是可用的。然后,在该引用上,您将拥有一个名为fitToSuppliedMarkers的方法。作为它的第一个参数,它接受一个marker identifiers数组,当它被调用时,它会将地图聚焦到符合所提供列表的标记。

代码语言:javascript
复制
mapRef.current.fitToSuppliedMarkers([ArrayContaingMarkersIdentifiers], {
    animated: true,
    edgePadding: {
        top: 50,
        right: 50,
        bottom: 50,
        left: 50,
    },
});

https://github.com/react-native-maps/react-native-maps/blob/master/docs/mapview.md#methods

为此,需要为每个<Marker />添加一个唯一的identifier

https://github.com/react-native-maps/react-native-maps/blob/master/docs/marker.md

我知道你使用的是基于类的方法,但是refs也是可用的。

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

https://stackoverflow.com/questions/65106435

复制
相关文章

相似问题

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