gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:39:26 24 4
gpt4 key购买 nike

如何在新的 reactjs hook api 中调用 rest Api。并使用 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)
}

最佳答案

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

从提供给 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>

关于javascript - 如何在 reactjs new hook api 中进行 api 调用并跨组件共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53021540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com