(已编辑)任何人都可以建议我如何将值从我的 useState(toDoData1 和 toDoData2)传递到 MapRegion(纬度和经度)

问题描述 投票:0回答:0

我的代码

import { StyleSheet, Text, View, Dimensions, Button } from 'react-native'
import React , {useEffect, useState} from 'react'
import {ref, onValue} from 'firebase/database'
import {db} from '../firebase'
import MapView, {Marker} from 'react-native-maps';
import * as Loc from 'expo-location';

const Location = ({route}) => {
  const paramKey = route.params.paramKey1
  console.log(paramKey)
  var ke, latit, longit;
  const [todoDatak, setToDoDatak] = useState([])
  
  const [todoDatal, setToDoDatal] = useState([])
  const [todoData2, setToDoData2] = useState([])

  const [mapRegion, setMapRegion] = useState({
    latitude: toDoData1,
    longitude: toDoData2,
    latitudeDelta: 0.9,
    longitudeDelta:0.9,
  })
  
  const [mapRegionNow, setMapRegionNow] = useState({
    latitude: 1.3483,
    longitude: 103.6831,
    latitudeDelta: 0.9,
    longitudeDelta:0.9,
  })
  
  useEffect (() => {
    const starCountRef = ref(db, "food/" + paramKey);
    onValue(starCountRef, (snapshot) =>{
 
      latit = snapshot.val().Latitude
      console.log("Value from Firebase: " + latit)
      longit = snapshot.val().Longitude
      console.log("Value from Firebase: " + longit);
      
      ke = snapshot.key;
      setToDoDatak(ke)
      
      setToDoDatal(latit)
      setToDoData2(longit)
     
      });
      userLocation();
    }, [])
    console.log('Latitude = ' + todoDatal)
    console.log('Longitude = ' + todoData2)

我似乎无法从toDoData1toDoData2设置latitudelongitude

我的控制台日志以确保提取和存储正确的值:

我试过改变

const [todoDatal, setToDoDatal] = useState([])
const [todoData2, setToDoData2] = useState([])

const [todoDatal, setToDoDatal] = useState()
const [todoData2, setToDoData2] = useState()

它仍然对我不起作用。我收到我的应用程序中显示的错误:

javascript reactjs react-native expo
© www.soinside.com 2019 - 2024. All rights reserved.