Javascript 从'获取错误;坐标';从Firebase更新数据时
我的问题是,当我创建数据或帖子(我使用Firebase数据库)时,它不会从标记的Javascript 从'获取错误;坐标';从Firebase更新数据时,javascript,react-native,firebase-realtime-database,Javascript,React Native,Firebase Realtime Database,我的问题是,当我创建数据或帖子(我使用Firebase数据库)时,它不会从标记的坐标中出错。但是,当我试图编辑任何数据(更改其他数据,如标题或说明)但不编辑数据的纬度或经度时,我会出错,因为我不希望用户只编辑标题、说明和图像的纬度或经度 这是我在尝试更新标题(不是纬度或经度)后遇到的错误 更新由以下管理的视图的属性“坐标”时出错:AIRMapMarker | null | latitude 想了解更多信息,请告诉我。谢谢大家! 这是我的密码: EventMapScreen:这是我的标记渲染的位置
坐标中出错。但是,当我试图编辑任何数据(更改其他数据,如标题或说明)但不编辑数据的纬度或经度时,我会出错,因为我不希望用户只编辑标题、说明和图像的纬度或经度
这是我在尝试更新标题(不是纬度或经度)后遇到的错误
更新由以下管理的视图的属性“坐标”时出错:AIRMapMarker | null | latitude
想了解更多信息,请告诉我。谢谢大家!
这是我的密码:
EventMapScreen:这是我的标记渲染的位置
<MapView
style={styles.map}
initialRegion={{
latitude: 14.6317303,
longitude: 121.0324869,
latitudeDelta: 0.0922,
longitudeDelta: 0.0421
}}
onPress={this.pickLocationHandler}
ref={ref => this.map = ref}
provider={PROVIDER_GOOGLE}
>
{this.props.eventsState.map((marker, index) => {
const scaleStyle = {
transform: [
{
scale: interpolations[index].scale,
},
],
};
const opacityStyle = {
opacity: interpolations[index].opacity,
};
return (
<Marker
key={index}
coordinate={{latitude: marker.latitude, longitude: marker.longitude}}
onPress={() => {
navigate('EventDetail', {
eventId: marker.id
});
}}
>
{/* <Animated.View style={[styles.markerWrap, opacityStyle]}>
<Animated.View style={[styles.ring, scaleStyle]} />
<View style={styles.marker} />
</Animated.View> */}
<Animated.View style={[styles.markerWrap]}>
<Animated.View style={[styles.ring]} />
<View style={styles.marker} />
</Animated.View>
</Marker>
);
})}
</MapView>
已经解决了!我只是没有在我的events.js/reducer
中获得纬度和经度的userIndex
。如果您有解决方案,请将其作为答案发布,然后作为正确答案接受。
<ScrollView>
<StatusBar backgroundColor="white" barStyle="dark-content"/>
<View style={styles.form}>
<Input
id="imageUrl"
label="Image Url"
errorText="Please enter a Image Url!"
autoCapitalize="sentences"
returnKeyType="next"
onInputChange={inputChangeHandler}
initialValue={editedEvent ? editedEvent.imageUrl : ''}
initiallyValid={!!editedEvent}
required
/>
<Input
id="title"
label="Title"
errorText="Please enter a valid title!"
autoCapitalize="sentences"
returnKeyType="next"
onInputChange={inputChangeHandler}
initialValue={editedEvent ? editedEvent.title : ''}
initiallyValid={!!editedEvent}
required
/>
<Input
id="description"
label="Description"
errorText="Please enter a valid description!"
autoCapitalize="sentences"
returnKeyType="done"
multiline
numberOfLines={3}
onInputChange={inputChangeHandler}
initialValue={editedEvent ? editedEvent.description : ''}
initiallyValid={!!editedEvent}
required
minLength={3}
/>
</View>
{imageData || editedEvent ?
<View>
<Image
source={{uri: imageData || editedEvent.imageUrl}}
style={styles.image}
/>
</View>
: <View></View>
}
</ScrollView>
export const fetchEvents = () => {
return async dispatch => {
const response = await fetch('https://rn-event-6c2e4.firebaseio.com/events.json');
const resData = await response.json();
const loadedEvents = [];
//id = key, userID = u1
for (const key in resData) {
loadedEvents.push(
new Event(
key,
'u1',
resData[key].imageUrl,
resData[key].title,
resData[key].description,
resData[key].latitude,
resData[key].longitude
)
);
}
dispatch({
type: SET_EVENTS,
events: loadedEvents
})
};
};
export const createEvent = (imageUrl, title, description, latitude, longitude) => {
return async dispatch => {
try {
const response = await fetch('https://rn-event-6c2e4.firebaseio.com/events.json', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
imageUrl,
title,
description,
latitude,
longitude
})
});
if (!response.ok) {
throw new Error('Something went wrong!');
}
const resData = await response.json();
console.log(resData);
dispatch({
type: CREATE_EVENT,
eventData: {
imageUrl,
title,
description,
latitude,
longitude
}
});
} catch (err) {
throw err;
}
};
};
export const updateEvent = (id, imageUrl, title, description) => {
return async dispatch => {
const response = await fetch(`https://rn-event-6c2e4.firebaseio.com/events/${id}.json`, {
method: 'PATCH',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
imageUrl,
title,
description,
})
});
dispatch({
type: UPDATE_EVENT,
eid: id,
eventData: {
imageUrl,
title,
description
}
})
}
};