реагировать JS хуки использовать эффект бесконечный цикл - PullRequest
0 голосов
/ 25 марта 2019

Я играю с реактивными хуками и следую за туторилом в 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;

1 Ответ

2 голосов
/ 25 марта 2019

[] находится не в том месте. Вы передаете его fetch().then() вместо useEffect

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