如何在 reactjs new hook api 中进行 api 调用并跨组件共享?

how to make api calls in reactjs new hook api and share that across components?

如何在新的 reactjs 挂钩中调用 rest Api api。 并使用 useEffect 和 useState 重用数据? 我只想跨组件重用数据。

import { useState, useEffect } from "react";
export default function getAdvice(url) {
    fetch(`http://api.adviceslip.com/advice`)
        .then(res => res.json())
        .then(res => console.log(res))
        .catch(err => console.log(err)
}

您可以创建一个自定义挂钩来创建您在网络请求完成时设置的新状态 advice

Return 给定 useEffect 的函数中的一个函数,当使用它的组件重新呈现或组件被卸载时取消您的请求。您还可以将数组中的 url 作为 useEffect 的第二个参数,以便仅在 url 实际更改时重新 运行 网络请求。

例子

const { useState, useEffect } = React;

function useAdvice(url) {
  const [advice, setAdvice] = useState(null);

  useEffect(
    () => {
      const timeout = setTimeout(() => {
        setAdvice(`Use ${url} to get some nice advice`);
      }, 1000);
      
      return () => clearTimeout(timeout);
    },
    [url]
  );

  return advice;
}

function App() {
  const advice = useAdvice("https://google.com");

  return <div>{advice}</div>;
}

ReactDOM.render(<App />, document.getElementById("root"));
<script src="https://unpkg.com/react@16.7.0-alpha.0/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@16.7.0-alpha.0/umd/react-dom.production.min.js"></script>
<div id="root"></div>