React native 和 mobx:[getFunction] 不是函数
React native and mobx: [getFunction] is not a function
我目前正在尝试实现一个从 firebase 数据库导入标记的 MobX 函数,如下所示:
fbMarkers.getMarkers().forEach( (marker, index) => {
console.log("Adding marker to map..");
console.log(JSON.stringify(marker));
...
但是,我收到错误 _MarkersStore.fbMarkers.getMarkers
不是函数。
该函数如下所示:
@computed get getMarkers() {
console.log("Getting markers.. which are:");
console.log(JSON.stringify(this.markers));
return this.markers;
}
每当我从签名中删除 @computed get
部分时(例如签名为 getMarkers() {...}
,我可以成功调用该函数,但我的标记不显示(我使用的是 Airbnb mapView) .
我的渲染方法如下:
render() {
var renderingMarkers = fbMarkers.markers.slice() || [];
return (<View>
{renderingMarkers.forEach( (marker, index) => {
return (
<MapView.Marker
navigator={this.props.navigator}
key={index}
coordinate={{latitude: marker.coordinate.latitude, longitude: marker.coordinate.longitude}}
title={marker.title}
description={marker.description}
onPress={(coord, pos) => this.navigateToBookBike(marker.title)}
><View style={styles.bikeRadius}><View style={styles.bikeMarker}>
<Text>Heyy</Text>
</View></View>
</MapView.Marker>
);
})}
</View>)
}
我有什么明显的错误,或者有什么我必须注意的吗?欢迎任何帮助和想法! :)
完整的代码是 here,如果这对您有帮助的话
您正在使用 JavaScript getter,这意味着您不应像函数调用那样取消引用该值。改为这样做:
fbMarkers.getMarkers.forEach((marker, index) => {
console.log("Adding marker to map..");
console.log(JSON.stringify(marker));
});
我目前正在尝试实现一个从 firebase 数据库导入标记的 MobX 函数,如下所示:
fbMarkers.getMarkers().forEach( (marker, index) => {
console.log("Adding marker to map..");
console.log(JSON.stringify(marker));
...
但是,我收到错误 _MarkersStore.fbMarkers.getMarkers
不是函数。
该函数如下所示:
@computed get getMarkers() {
console.log("Getting markers.. which are:");
console.log(JSON.stringify(this.markers));
return this.markers;
}
每当我从签名中删除 @computed get
部分时(例如签名为 getMarkers() {...}
,我可以成功调用该函数,但我的标记不显示(我使用的是 Airbnb mapView) .
我的渲染方法如下:
render() {
var renderingMarkers = fbMarkers.markers.slice() || [];
return (<View>
{renderingMarkers.forEach( (marker, index) => {
return (
<MapView.Marker
navigator={this.props.navigator}
key={index}
coordinate={{latitude: marker.coordinate.latitude, longitude: marker.coordinate.longitude}}
title={marker.title}
description={marker.description}
onPress={(coord, pos) => this.navigateToBookBike(marker.title)}
><View style={styles.bikeRadius}><View style={styles.bikeMarker}>
<Text>Heyy</Text>
</View></View>
</MapView.Marker>
);
})}
</View>)
}
我有什么明显的错误,或者有什么我必须注意的吗?欢迎任何帮助和想法! :)
完整的代码是 here,如果这对您有帮助的话
您正在使用 JavaScript getter,这意味着您不应像函数调用那样取消引用该值。改为这样做:
fbMarkers.getMarkers.forEach((marker, index) => {
console.log("Adding marker to map..");
console.log(JSON.stringify(marker));
});