実現したいこと
前提
現在地情報を非同期で取得してStateに反映したいのですが、即時反映されません。
以下のソースコードのconsole.logで新しい値に変わっているのが望ましいのですが、この時点ではまだStateが更新されないようです。
どのようにすればここのconsole.logの時点で値を反映させることができるでしょうか。
値は連想配列です。
JavaScript
1 navigator.geolocation.getCurrentPosition(2 (position) => {3 4 const data: currentPosition = {5 lat: position.coords.latitude,6 lng: position.coords.longitude,7 };8 // state更新9 setCurrentPosition(data);10 //更新した値をログに出したいが、setCurrentPositionした値が反映されない11 console.log(currentPosition.lat);12 console.log(currentPosition.lng);13 resolve();14 },15...16 }
なぜそうしたいのか
現在地を取得→現在地情報を元にAPIでデータを取得したいためです。
現在地情報をstateで管理すると、APIが走る時に最新の現在地情報が反映されていないことに気がつきました。
そのため即時反映(console.logの位置で反映)されていれば、後続の処理で問題なく現在地情報を使えると思いました。

0 コメント