在使用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”
答案 0 :(得分:0)
问题在于您将_this = this
定义为全局变量。您有可能覆盖该值,当您想在onPress
回调中访问它时,该值指向不同的this
引用,该引用未定义被调用的函数。
要解决此问题,请将上述代码替换为:const _this = this
;
我建议使用ES2015的箭头功能,就像使用onPress
回调一样,您不需要自己处理此引用。