API GET 请求的无限循环

时间:2021-05-04 19:35:45

标签: reactjs api axios

我对使用 API 还比较陌生,我希望使用 GET 请求从 API 获取数据,而这段代码导致了 GET 请求的无限循环。我最终想要完成的是访问我在 res.data 中接收的数据,以便我可以从 API 响应中返回的对象中提取信息(使用类似 res.data.name 的东西,它当前正在提示一个错误说 res 未定义,我认为这可能是由于范围问题)。

  const Podcast=()=>{


    const[show,setShow]=useState([])
    const[bestPodcasts,setBestPodcasts]=useState([])
    const [genre,setGenre]=useState('')
    const[data,setData]=useState({})

    client.fetchBestPodcasts(
        {  genre_id: '91',
    page: 2,
    region: 'us',
    safe_mode: 0,}
    )
.then((res) => {
    setData(res.data)
    // Get response json data here
    console.log(res.data);
  }).catch((error) => {
    console.log(error)
  })  
  

1 个答案:

答案 0 :(得分:0)

您可以使用 useEffect 钩子,它只会/最初调用您的 API 一次:

const Podcast = () => {

    const [show, setShow] = useState([])
    const [bestPodcasts, setBestPodcasts] = useState([])
    const [genre, setGenre] = useState('')
    const [data, setData] = useState({})

    useEffect(() => {
        apiCall()
    }, []);

    const apiCall = () => {
        const data = {
            genre_id: '91',
            page: 2,
            region: 'us',
            safe_mode: 0
        }
        client.fetchBestPodcasts(data)
            .then(res => setData(res.data))
            .catch(error => console.log(error))
    }
}