你好 React 和 Js 程序员,我有一个与函数的 scoop 或变量相关的问题
我这里有这段代码可以从 gecoder 中获取位置
getPosition = pos => {
let address;
Geocoder.reverseGeocode(pos.latitude, pos.longitude, (err, geoData) => {
if (!err) {
const data = (geoData.results[0].formatted_address);
address = data;
}
}, apiKey);
console.log(address);// undefined
}
我尝试使用数组并将结果放入其中
const address = [];
Geocoder.reverseGeocode(pos.latitude, pos.longitude, (err, geoData) => {
if (!err) {
const data = (geoData.results[0].formatted_address);
address.push(data);
}
}, apiKey);
console.log(address[0]);
有没有办法从字符串数据中获取值? 谢谢
最佳答案
您在变量被回调定义/修改之前记录变量,因此会出现意外结果。
这应该有效:
getPosition = pos => {
let address;
Geocoder.reverseGeocode(pos.latitude, pos.longitude, (err, geoData) => {
if (!err) {
const data = (geoData.results[0].formatted_address);
address = data;
}
// log INSIDE the callback!
console.log(address);
}, apiKey);
}
这也是:
// callback is not executed yet, don't log!
const address = [];
Geocoder.reverseGeocode(pos.latitude, pos.longitude, (err, geoData) => {
if (!err) {
const data = (geoData.results[0].formatted_address);
address.push(data);
}
// logs INSIDE the callback!
console.log(address[0]);
}, apiKey);
// callback is not executed yet, don't log!
关于javascript - React 函数不会重新分配(让)或插入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54159615/