视图切换后不是功能

时间:2017-06-17 21:22:34

标签: javascript android react-native react-native-router-flux

在使用react-native-router-flux切换视图时,我遇到了react-native的问题。

    mapMarkerGen(){
     if(mapMarkersFetched){
     _this = this;
     return mapMarkers.map(function(marker, i){
    return(
    <MapView.Marker
      key={i}
      coordinate={{
        longitude: parseFloat(marker.lo),
        latitude: parseFloat(marker.la),
      }}
      onPress={() =>{_this.getMarkerInfo(marker.id, i);}}
      title={_this.state.title}
      description={_this.state.info}
      onCalloutPress={function(){Actions.place({placeID: marker.id});}}
    >
    </MapView.Marker>
  );
  });
}
}

我在视图之间切换如果我点击标注然后回来我得到错误_this.getMarkerInfo不是函数

“反应”:“^ 16.0.0-alpha.12”,

“react-native”:“^ 0.45.1”,

“react-native-router-flux”:“^ 3.40.1”

1 个答案:

答案 0 :(得分:0)

问题在于您将_this = this定义为全局变量。您有可能覆盖该值,当您想在onPress回调中访问它时,该值指向不同的this引用,该引用未定义被调用的函数。

要解决此问题,请将上述代码替换为:const _this = this;

我建议使用ES2015的箭头功能,就像使用onPress回调一样,您不需要自己处理此引用。