【发布时间】:2019-11-29 20:30:51
【问题描述】:
我正在使用 react hooks 并且在尝试获取一些数据时遇到了一个奇怪的问题,当我创建一个文件以使用 hooks 和 axios 获取数据时
这行得通
import axios from 'axios';
const useResources = (resource) => {
const [resources, setResources ] = useState([]);
useEffect(
() => {
(async resource => {
const response = await axios.get(`randomapi.com/${resource}`);
setResources(response.data);
})(resource);
},
[resource]
);
return resources;
};
export default useResources;
但这不是
import { useState, useEffect } from 'react';
import Axios from 'axios';
const fetchData = () => {
const [data, setData] = useState('');
useEffect( async () => {
const response = await Axios('randomapi.com/word?key=*****&number={number_of_words}');
setData(response.data);
});
return data;
};
export default fetchData;
'React Hook useEffect 包含对'setData'的调用。如果没有依赖项列表,这可能会导致无限的更新链。要解决此问题,请将 [] 作为第二个参数传递给 useEffect Hook。'
他们不一样吗?
【问题讨论】:
标签: reactjs react-hooks