首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的API请求被调用了4次?

为什么我的API请求被调用了4次?
EN

Stack Overflow用户
提问于 2022-06-28 01:20:45
回答 1查看 44关注 0票数 0

我正在处理一个发出api请求的项目,但是我的请求被调用了4次,为什么会发生这种情况?

代码语言:javascript
复制
const [movies, setMovies] = useState([]);
  const [searchTerm, setSearchTerm] = useState('')

  useEffect(() => {

    getMovies(FEATURED_API)
    
    if (searchTerm) {
      getMovies(SEARCH_API + searchTerm);
    } else{
      getMovies(FEATURED_API)
    }

  }, [searchTerm])


  const getMovies = (API) => {
    fetch(API)
    .then((res) => res.json())
    .then((data) => {
      console.log(data)
      setMovies(data.results)
    })
  }

  const handleOnChange = (e) => {
    setSearchTerm(e.target.value)
  }```
EN

回答 1

Stack Overflow用户

发布于 2022-06-28 02:59:57

在您的代码中,您正在挂载上两次调用getMovies(FEATURED_API) (一次在if原因之外,另一次在其他原因中)。

代码语言:javascript
复制
useEffect(() => {

 getMovies(FEATURED_API) // first call

 if (searchTerm) {
   getMovies(SEARCH_API + searchTerm);
 } else{
  getMovies(FEATURED_API) // second call because searchTerm is an empty string
 }
}, [searchTerm])

另外两个调用可能是因为您启用了StrictMode (它是默认的create-react-app),而且您没有注意到它。StrictMode在开发模式下两次安装组件,以帮助您更轻松地检测代码中的问题。

您可以使用一个更具有描述性的概念来检查this post comment,即StrictMode所做的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72779763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档