Javascript 如何在reactjs新的钩子api中进行api调用并在组件之间共享?

Javascript 如何在reactjs新的钩子api中进行api调用并在组件之间共享?,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,如何在新的reactjshookapi中调用restApi。 以及使用useEffects和useState重用数据? 我只想跨组件重用数据 import { useState, useEffect } from "react"; export default function getAdvice(url) { fetch(`http://api.adviceslip.com/advice`) .then(res => res.json()) .th

如何在新的reactjshookapi中调用restApi。 以及使用useEffects和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)
}

您可以创建一个自定义钩子,该钩子创建一个新的状态
通知
,您可以在网络请求完成时设置该状态

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

示例

const{useState,useffect}=React;
函数useAdvice(url){
const[advice,setAdvice]=useState(null);
使用效果(
() => {
常量超时=设置超时(()=>{
setAdvice(`Use${url}获得一些好的建议`);
}, 1000);
return()=>clearTimeout(超时);
},
[网址]
);
回信;
}
函数App(){
const advice=useAdvice(“https://google.com");
返回{advice};
}
render(,document.getElementById(“根”))

当然可以,谢谢您的快速回复。