J. *_*Doe 2 javascript reactjs react-native
我在尝试获取世博会中的当前位置时收到此错误。我在 console.log 中得到了正确的值,所以我不知道问题是什么。在 Expo 中,它说“执行 UI 块时抛出异常,NSNull 双值:无法识别的选择器发送到实例”。这是我的代码:
this.state = { text: 'Destination' ,
latitude: null,
longitude: null,
error: null,
componentDidMount() {
navigator.geolocation.getCurrentPosition(
(position) => {
this.setState({
latitude: position.coords.latitude,
longitude: position.coords.longitude,
error: null,
});
},
(error) => this.setState({ error: error.message }),
{ enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 },
);
{.....}
render()
<MapView style={styles.map}
region ={{
latitude:this.state.latitude,
longitude:this.state.longitude,
latitudeDelta: 0.1,
longitudeDelta: 0.1,
Run Code Online (Sandbox Code Playgroud)
getCurrentPosition()是异步的,所以你的初始latitude状态为空。
要么为其提供默认的非空值,要么避免渲染,MapView直到它不再为空:
render() {
return this.state.latitude !== null && <MapView ... />;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2421 次 |
| 最近记录: |