javascript - React 函数不会重新分配(让)或插入数组

标签 javascript reactjs function

你好 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/

相关文章:

c - 平均函数的错误答案?

在这种情况下如何避免 While(true) ?

javascript - jQuery Tools Validator : not required, 但测试是否为空

javascript - 使用显示/隐藏通过 materliaze + react 重新排序 div 是个坏主意吗?

c - 使用指针从另一个函数打印字符串

python - Python 嵌套函数是否可以写入时复制?

javascript - CheckBoxFor 在 ASP.NET MVC 的 javascript 函数中返回以前的值

reactjs - 如何在 react 功能组件中进行超时然后清除超时?

reactjs - React 路由器在更改路由和返回时保留查询参数

javascript - 如何使用 ASP.NET Core 2.1 和 React JS 创建下载功能?