在第二個 API 中使用來自第一個 API 的信息 - React (Using information from the first API in the second one - React)


問題描述

在第二個 API 中使用來自第一個 API 的信息 ‑ React (Using information from the first API in the second one ‑ React)

大家!

我有一個小問題。我需要獲取兩個 API:我需要調用第一個,然後在第二個中使用來自第一個的信息。你能幫我解決一下嗎?這是我當前的代碼,但我無法以某種方式獲取第一次獲取的結果(我可以在控制台和其他東西中看到,所以這不是問題;我只需要從那裡獲取數據)。

    function App() {
const [query, setQuery] = useState('');
const [weather, setWeather] = useState({});

const search = evt => {
if (evt.key === "Enter") {
fetch(${api.base}forecast?q=${query}&units=metric&APPID=${api.key})
.then(res => res.json())
.then(result => {
setWeather(result);
setQuery('');
console.log(result);
})
.then((result) => {
const data = fetch(${api.base}onecall?lat=${result.city.coord.lat}&lon=${result.city.coord.lon}&APPID=${api.key})
console.log(data)
})

}

}
</code></pre>


參考解法

方法 1:

You need to return the result in then of promise since it creates a new promise out of returned value.

const search = evt => {
    if (evt.key === "Enter") {
      fetch(`${api.base}forecast?q=${query}&units=metric&APPID=${api.key}`)
        .then(res => res.json())
        .then(result => {
          setWeather(result);
          setQuery('');
          console.log(result);
          return result; // add return statement 
        })
        .then((result) => {
          const data = fetch(`${api.base}onecall?lat=${result.city.coord.lat}&lon=${result.city.coord.lon}&APPID=${api.key}`)
          data.then((res)=>res.json())
              .then(result=>{
                  console.log(result)
               })
        })

    }
  }

(by MrVolandSarthak Aggarwal)

參考文件

  1. Using information from the first API in the second one ‑ React (CC BY‑SA 2.5/3.0/4.0)

#fetch #API #reactjs






相關問題

mysql fetch 中的 $row 是什麼類型的變量? (What kind of variable is $row from a mysql fetch?)

如何在 PHP 中使用 bind_params 正確獲取數據到數組 (How to correctly fetch data to array with bind_params in PHP)

使用 JavaMail 加速電子郵件檢索 (Speed up email retrieval with JavaMail)

使用 eclipselink 從多個表中獲取數據 (Fetch data from multiple tables using eclipselink)

如何在 Webassembly 中獲取 JSON 文件 (How to Fetch a JSON file in Webassembly)

mysqli(a,b,c,d)->query(sql)->fetch_assoc() 究竟是如何工作的? (How exactly does mysqli(a,b,c,d)->query(sql)->fetch_assoc() work?)

如何在 .map 中返回異步函數? (How do I make an asynchronous function return in .map?)

如何僅在響應中的 onclick 事件後映射 json 列表? (How to map a json list only after an onclick event in react?)

在第二個 API 中使用來自第一個 API 的信息 - React (Using information from the first API in the second one - React)

使用 Jest 測試框架調用 fetch(url) 時如何根據 url 模擬變量響應? (How to mock variable responses based on the url when fetch(url) is called using the Jest testing framework?)

函數不返回對像以供 .then 使用 - 但能夠 console.log 對象,並明確返回它 (Function not returning object for .then to work with - but able to console.log the object, and am explicitly returning it)

fetch api - 400 加載資源失敗 (fetch api - 400 failed to load resource)







留言討論