第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

React-Leaflet 地圖不更新

React-Leaflet 地圖不更新

犯罪嫌疑人X 2023-07-14 16:51:55
我的問題是,react-leaflet<MapContainer>并不以我動態(tài)設(shè)置的位置為中心?;具壿嬍牵矣幸粋€表單,在其中輸入街道和門牌號,然后調(diào)用 Nominatim 并獲取一些 JSON 格式數(shù)據(jù),從中提取建筑物的緯度和經(jīng)度。這些經(jīng)緯度和時(shí)間我傳遞給我的,<MapContainer>但它無論如何都沒有回應(yīng)。使用react-leaflet v2它工作得很好,但是在我更新到v3之后它就停止了。每當(dāng)我設(shè)置默認(rèn)位置值時(shí),MapContainer 都會以該位置為中心。但是,當(dāng)我通過 Nominatim 調(diào)用動態(tài)傳遞另一個值時(shí),它不起作用。在這里我呼吁提名:const getSearchData = async () => {    const exampleReq = `https://nominatim.openstreetmap.org/search/${query}?format=json&building=*&addressdetails=1&limit=1&polygon_geojson=1`;    const response = await fetch(exampleReq);    const data = await response.json();    // console.log(data);    if (data === undefined || data.length === 0) {        // array empty or does not exist        console.log("data array is empty");        alert("Given address unrecognized! Try again please.")        setLatitude(DEFAULT_LATITUDE);        setLongitude(DEFAULT_LONGITUDE);    }else{        setLatitude(data[0].lat);        setLongitude(data[0].lon);    }};這是我的表單的提交:<form className={style.searchForm} onSubmit={e => {                e.preventDefault();                setQuery(street + " " + houseNumber.replace(/\//g, "-") + ", Tallinn");                setPosition({                    ltd: lat,                     lng: long                });這是我的 MapBox 組件,其中包含我的傳單地圖:const MapBox = (props) => {  useEffect(()=>{      console.log("MAPBOX!");      console.log("updateMap() - lat ---> " + props.latitude);      console.log("updateMap() - long ---> " + props.longitude);      updateMap();  },[props.street, props.houseNumber]);  const passStreet = props.street;  const passHouseNumber = props.houseNumber;
查看完整描述

1 回答

?
喵喔喔

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個贊

我能夠解決它。在文檔中是這樣描述的:


除了其子級之外,MapContainer 屬性是不可變的:第一次設(shè)置后更改它們不會對 Map 實(shí)例或其容器產(chǎn)生任何影響。子組件可以使用提供的掛鉤之一或 MapConsumer 組件來訪問由 MapContainer 元素創(chuàng)建的 Leaflet Map 實(shí)例。


這段代碼有助于理解:


function MyComponent() {

  const map = useMap()

  console.log('map center:', map.getCenter())

  return null

}


function MyMapComponent() {

  return (

    <MapContainer center={[50.5, 30.5]} zoom={13}>

      <MyComponent />

    </MapContainer>

  )

}

我實(shí)施的:


function MyComponent(props) {

const map = useMap();

map.setView(props.center, props.zoom);

return null;

}


查看完整回答
反對 回復(fù) 2023-07-14
  • 1 回答
  • 0 關(guān)注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號