React Hooks-发出Ajax请求
我刚刚开始玩React钩子,想知道AJAX请求的外观如何?
我已经尝试了很多尝试,但是无法使其正常工作,并且也不太了解实现它的最佳方法。以下是我的最新尝试:
import React, { useState, useEffect } from 'react';const App = () => {
const URL = 'http://api.com';
const [data, setData] = useState({});
useEffect(() => {
const resp = fetch(URL).then(res => {
console.log(res)
});
});
return (
<div>
// display content here
</div>
)
}
回答:
您可以创建一个自定义钩子useFetch
,该useEffect
钩子将实现该钩子。
通过将空数组作为第二个参数传递给useEffect
钩子,将触发上的请求componentDidMount
。
这是代码沙箱中的演示。
请参见下面的代码。
import React, { useState, useEffect } from 'react';const useFetch = (url) => {
const [data, setData] = useState(null);
// empty array as second argument equivalent to componentDidMount
useEffect(() => {
async function fetchData() {
const response = await fetch(url);
const json = await response.json();
setData(json);
}
fetchData();
}, [url]);
return data;
};
const App = () => {
const URL = 'http://www.example.json';
const result = useFetch(URL);
return (
<div>
{JSON.stringify(result)}
</div>
);
}
以上是 React Hooks-发出Ajax请求 的全部内容, 来源链接: utcz.com/qa/425334.html