2016-08-16 7 views
1

Эй, ребята, я пытаюсь показать модальный щелчок на марке карты, но я не вижу никакого модального на маркерном щелчке, может кто-нибудь помочь мне в этом. Я использую Modal из https://github.com/maxs15/react-native-modalboxМодальные не отображаются в реакции-родной?

Вот код:

import Modal from 'react-native-modalbox' 
openModal4(id) { 
    this.refs.modal4.open(); 
    } 

render(){ 
return(
<View style={style.mainContainer}> 
    <MapView 
     ref="map" 
     showUserLocation={true} 
     region={this.state.region} 
     onRegionChange={this.onRegionChange} 
     onRegionChangeComplete={this.onRegionChangeComplete} 
     style={styles.map} 
     rotateEnabled={false} 
     showsCompass={false} 
     > 
     {this.state.markers.map(function(marker){ 
     return(
      <MapView.Marker coordinate={marker.latlng} key={marker.id} onPress={this.openModal4} /> 
     ); 
     })} 
    </MapView> 
    <View style={{position: 'absolute', width: windowsWidth, height: windowsHeight - 100, alignItems: 'center', justifyContent: 'center'}}> 
     <Image 
     source={require('./assets/map-marker.png')} 
     /> 

    </View> 
    <Modal style={[styles.modal, styles.modal4]} position={"bottom"} ref={"modal4"}> 
    </Modal> 
    </View> 
) 
} 

может кто-нибудь помочь мне? Заранее спасибо.

+0

Вы могли бы показать весь код в файле? – stereodenis

+0

вы можете посмотреть сейчас @stereodenis – atif

+0

что вы используете 'extend React.Component' или' React.createClass'? – stereodenis

ответ

0

Вы должны внести изменения, чтобы связать это в обратных вызовах прочитать эту статью Don't Use Bind When Passing Props

openModal4 = (id) => { 
    this.refs.modal4.open(); 
} 
+0

я до сих пор не вижу модального, исходящего от дна? – atif

+0

Вы могли бы вызвать console.log (this.refs.modal4) в openModal4? – stereodenis

+0

Я ничего не вижу после console.log (this.refs.modal4) – atif

0

Ребят Binding был вопросом, который получает решен после того, как с помощью функции стрелки => здесь код

openModal4(id){ 
    this.refs.modal4.open(); 
    } 

{this.state.markers.map((marker) => { 
      return(
       <MapView.Marker coordinate={marker.latlng} key={marker.id} onPress={this.openModal4} /> 
      ); 
      })} 

И вам необходимо связать функцию в конструкторе, поскольку она состоит из этого «0»

this.openModal4 = this.openModal4.bind(this) 

надеюсь, что моя борьба помогла бы другим