React Hook useEffect:使用axios通过async await .api调用连续的相同api来获取数据

时间:2019-09-03 07:06:39

标签: reactjs api axios

虽然我从API获取数据并使用useEffect将响应设置为数组 它称API为连续重复。

let [product, setproduct] = useState([]);

async function fetchData() {
    let response = await axios(
      `api`
    );
    let user = await response.data;
    setproduct(user);
    console.log(product);
  }

  useEffect(() => {
    fetchData();
  }); 

2 个答案:

答案 0 :(得分:1)

docs

  

useEffect是否在每次渲染后运行?是的!默认情况下,它在第一次渲染后和每次更新后都运行。 (我们将在后面讨论如何自定义此功能。)您可能会发现更容易想到效果发生在“渲染后”,而不是“安装”和“更新”。 React保证DOM在运行效果时已被更新。

您可以提供空的依赖项数组/ []作为useEffect的第二个参数,它与componentDidMount相同,后者在组件生命周期中仅执行一次。

useEffect(() => {
    fetchData();
}, []); //This will run only once 

答案 1 :(得分:0)

将空的 [] 作为第二个参数传递给useEffect方法。它将在初始渲染时调用,如下所示。

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