pra*_*n90 3 javascript reactjs react-hooks
如何在新的reactjs钩子api中调用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)
}
Run Code Online (Sandbox Code Playgroud)
您可以创建一个自定义挂钩,用于创建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"));Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
682 次 |
| 最近记录: |