gpt4 book ai didi

javascript - React useEffect hook 和 Async/await 自己的获取数据函数?

转载 作者:行者123 更新时间:2023-11-30 11:07:40 26 4
gpt4 key购买 nike

我尝试创建一个从服务器获取数据的函数,它成功了。但我不确定这是否正确?

我使用 useStateuseEffectAsync/Await 创建了一个函数组件来获取数据:

import React, { useState, useEffect } from "react";

const Fetch = () => {
const [data, setData] = useState(null);
useEffect(() => {
const fetchData = async () => {
let res = await fetch(
"https://api.coindesk.com/v1/bpi/currentprice.json" //example and simple data
);
let response = await res.json();
setData(response.disclaimer); // parse json
console.log(response);
};
fetchData();
}, []);
return <div>{data}</div>;
};

export default Fetch; // don't run code snippet, not working, this component must be imported in main

我不确定是在哪里 调用 fetchData 函数的地方。我在 useEffect 中这样做?正确的位置?而且,这种调用只会发生一次吗?因为我使用[]?

一般情况下,您会怎么做?

最佳答案

总的来说,您正朝着正确的方向前进。对于获取数据,您需要使用 useEffect 并将 [] 作为第二个参数传递,以确保它仅在初始装载时触发。

我相信您可以从解耦 fetchJson 函数并使其更通用中受益,例如:

const fetchJson = async (url) => {
const response = await fetch(url);
return response.json();
};

const Fetch = () => {
const [data, setData] = useState(null);

useEffect(() => {
fetchJson("https://api.coindesk.com/v1/bpi/currentprice.json")
.then(({ disclaimer }) => setData(disclaimer));
}, []);

return <div>{data}</div>;
};

关于javascript - React useEffect hook 和 Async/await 自己的获取数据函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55008076/

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