javascript - React js钩子(Hook)useEffect无限循环

标签 javascript reactjs react-hooks

我正在尝试使用 React hooks 并按照 https://www.valentinog.com/blog/hooks/ 上的教程进行操作。 。我将空数组作为文档后面的第二个参数放入,出于某种原因我仍然遇到无限循环。

import React, { useState, useEffect } from "react";
export default function useDataLoader() {
  const [data, setData] = useState([]);
  useEffect(() => {
    fetch("http://api.icndb.com/jokes/random")
      .then(response => response.json())
      .then(data => {
        setData(data.value.joke)
        console.log(data)
      }, []);
  });
  return (
    <div>
      <div>
        {data}
      </div>
    </div>
  );
}


import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
import Hook from './components/Hook'
import DataLoader from './components/DataLoader'

class App extends Component {
  render() {
    return (
      <div className="App">
        <Hook />
        <DataLoader/>
      </div>
    );
  }
}

export default App;

最佳答案

[] 位置错误。您将其传递给 fetch().then() 而不是 useEffect

  useEffect(() => {
    fetch("http://api.icndb.com/jokes/random")
      .then(response => response.json())
      .then(data => {
        setData(data.value.joke)
        console.log(data)
      });
  }, []);

关于javascript - React js钩子(Hook)useEffect无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55328686/

相关文章:

javascript - 寻求有关如何将可排序网格合并到 Google 电子表格中的总体指导

javascript - componentDidMount 中的函数没有未使用的表达式

javascript - Reactjs 在初始渲染之前安装状态还是保持原样?

react-hooks - useState 取决于其他状态

javascript - JavaScript 's “new” 关键字是否被认为是有害的(第 2 部分)?

javascript - 使用 Ember js 调用 REST API

javascript - React HOC 适用于某些组件,但不适用于其他组件

node.js - 我的 NodeJS 服务器在 6 个 Axios post 请求后崩溃

node.js - 未捕获( promise )TypeError : dispatch is not a function useContext/useReducer

reactjs - 组件在异步 React 上下文更新时渲染两次