如何使用setState在react native中保存当前位置?

时间:2019-03-28 20:03:48

标签: react-native

我使用此代码从用户获取当前位置,但是现在当我使用setState将经度和纬度保存到状态时,我有了一个通知。

  

ReferenceError:未定义setState

 async componentDidMount(){
     const { status } = await Expo.Permissions.askAsync(Expo.Permissions.LOCATION);
       if (status === 'granted') {
           const location = await Expo.Location.getCurrentPositionAsync({
             enableHighAccuracy: true,
           });
           setState({
             lat:JSON.stringify(location.coords.latitude),
             long:JSON.stringify(location.coords.longitude),
           });
       }
 }

如何保存位置信息?

1 个答案:

答案 0 :(得分:1)

您可以使用this设置setState。

在您的constructor中添加状态变量,

constructor(props) {
        super(props);
        this.state = {
            ...
            lat: 0.000,
            long: 0.000,
            ...
        };
    }

然后将this添加到方法中。

async componentDidMount(){
     const { status } = await Expo.Permissions.askAsync(Expo.Permissions.LOCATION);
       if (status === 'granted') {
           const location = await Expo.Location.getCurrentPositionAsync({
             enableHighAccuracy: true,
           });
           this.setState({
             lat:JSON.stringify(location.coords.latitude),
             long:JSON.stringify(location.coords.longitude),
           });
       }
 }