虽然我从API
获取数据并使用useEffect
将响应设置为数组
它称API
为连续重复。
let [product, setproduct] = useState([]);
async function fetchData() {
let response = await axios(
`api`
);
let user = await response.data;
setproduct(user);
console.log(product);
}
useEffect(() => {
fetchData();
});
答案 0 :(得分:1)
从docs,
useEffect是否在每次渲染后运行?是的!默认情况下,它在第一次渲染后和每次更新后都运行。 (我们将在后面讨论如何自定义此功能。)您可能会发现更容易想到效果发生在“渲染后”,而不是“安装”和“更新”。 React保证DOM在运行效果时已被更新。
您可以提供空的依赖项数组/ []
作为useEffect
的第二个参数,它与componentDidMount
相同,后者在组件生命周期中仅执行一次。
useEffect(() => {
fetchData();
}, []); //This will run only once
答案 1 :(得分:0)
将空的 []
作为第二个参数传递给useEffect
方法。它将在初始渲染时调用,如下所示。
useEffect(() => {
fetchData();
}, []);