繁体   English   中英

如果发现更改,则挂钩依赖 API 调用 React

[英]Hooks dependency API call if changes found React

如果发现更改,则挂钩依赖 API 调用 React:

const [post, setPost] = useState({})
         const [id, setId] = useState(1)
         const [idFromButtonClick, setIdFromButtonClick] = useState(1)

         const tick = () => {
             axios
               .get(`https://jsonplaceholder.typicode.com/posts/${id}`)
               .then(res => {
              console.log(res)
              setPost(res.data)
               })
               .catch(err => {
                  console.log(err)
               })
         }

         useEffect(() => {
                const interval = setInterval(tick, 1000)
                return () => {
                  clearInterval(interval)
                }

         }, [idFromButtonClick])

         const handleClick = () => {
            setIdFromButtonClick(id)
         }

我在一秒钟后调用 api,但我希望 api 只调用它,这有区别,我该怎么做,请指导

提前致谢

如果我理解正确,您希望延迟 1 秒调用 API

 useEffect(() => {
     setTimeout(
         ()=>{axios
             .get(`https://jsonplaceholder.typicode.com/posts/${id}`)
              .then(res => {
                     console.log(res)
                     setPost(res.data)
                   })
              .catch(err => {
                     console.log(err)
             })}
          ,1000)


          }, [idFromButtonClick])

您不需要使用setInterval只需在 setTimeout 内调用 API。 看看这个

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM