首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确使用UseCallback钩子

如何正确使用UseCallback钩子
EN

Stack Overflow用户
提问于 2020-03-23 15:25:38
回答 1查看 429关注 0票数 1

下面的代码给我一个警告:

React useEffect缺少一个依赖项:'getData‘。

要么包含它,要么删除依赖数组。

我知道,在新的react规则中,我必须将它封装在useCallBack中,但我不知道如何这样做。有谁能给我提供如何正确使用,useCallBack。提前谢谢你!!

代码语言:javascript
复制
import React, { useState, useEffect, useCallback } from "react"
import axios from "axios"

const Home = () => {
  const [data, setData] = useState(null)
  const [query, setQuery] = useState("reacthooks")

  useEffect(() => {
    getData()
  }, [query])

  const getData = async () => {
    const response = await axios.get(
      `http://hn.algolia.com/api/v1/search?query=${query}`
    )
    setData(response.data)
  }

  const handleChange = event => {
    event.preventDefault()
    setQuery(event.target.value)
  }

  return (
    <div>
      <input type='text' onChange={handleChange} />
      {data &&
        data.hits.map(item => (
          <div key={item.objectID}>
            {item.url && (
              <>
                <a href={item.url}>{item.title}</a>
                <div>{item.author}</div>
              </>
            )}
          </div>
        ))}
    </div>
  )
}

export default Home
EN

回答 1

Stack Overflow用户

发布于 2020-03-23 15:29:14

在您的情况下,我只需将getData函数添加到useEffect钩子中即可。

尝试以下几点:

代码语言:javascript
复制
useEffect(() => {
    const getData = async () => {
       const response = await axios.get(
           `http://hn.algolia.com/api/v1/search?query=${query}`
       )
       setData(response.data)
    }

    getData()
}, [query])

我希望这能帮到你!

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

https://stackoverflow.com/questions/60816519

复制
相关文章

相似问题

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