如何 return data with swr in react?
How to return data with swr in react?
我尝试显示数据,我使用带有反应的 swr 数据获取,这是代码:
import useSWR from "swr";
import axios from "axios";
const fetcherFunc = (...args) => {
return axios(...args).then((res) => console.log(res.data));
};
function MyComponent() {
const { data, error } = useSWR(
"https://jsonplaceholder.typicode.com/posts/",
fetcherFunc
);
if (error) return <div>failed to load</div>;
if (!data) return <div>loading...</div>;
return <div>{JSON.stringify(data)}</div>;
}
export default MyComponent;
问题是它卡在加载中,数据不会更新并且未定义,而且 fetcher 中数据的控制台日志似乎可以正常工作。
如何在react中使用swr获取数据并显示获取的数据?
您应该从 fetcherFunc
return res.data
而不是 console.log
获取数据。
此外,只需使用 url
作为 fetcherFunc
的参数名称并将 url 传递给 axios.get
(不要使用 ...url
url 上的传播运算符)。看看 How To Use Axios for Data Fetching(传递 url、方法、有效负载等)。
获取数据的函数应该如下所示:
const fetcherFunc = (url) => axios.get(url).then((res) => res.data);
至于useSWR
钩子,这样使用:
const { data, error } = useSWR("https://jsonplaceholder.typicode.com/posts/", fetcherFunc);
我尝试显示数据,我使用带有反应的 swr 数据获取,这是代码:
import useSWR from "swr";
import axios from "axios";
const fetcherFunc = (...args) => {
return axios(...args).then((res) => console.log(res.data));
};
function MyComponent() {
const { data, error } = useSWR(
"https://jsonplaceholder.typicode.com/posts/",
fetcherFunc
);
if (error) return <div>failed to load</div>;
if (!data) return <div>loading...</div>;
return <div>{JSON.stringify(data)}</div>;
}
export default MyComponent;
问题是它卡在加载中,数据不会更新并且未定义,而且 fetcher 中数据的控制台日志似乎可以正常工作。
如何在react中使用swr获取数据并显示获取的数据?
您应该从 fetcherFunc
return res.data
而不是 console.log
获取数据。
此外,只需使用 url
作为 fetcherFunc
的参数名称并将 url 传递给 axios.get
(不要使用 ...url
url 上的传播运算符)。看看 How To Use Axios for Data Fetching(传递 url、方法、有效负载等)。
获取数据的函数应该如下所示:
const fetcherFunc = (url) => axios.get(url).then((res) => res.data);
至于useSWR
钩子,这样使用:
const { data, error } = useSWR("https://jsonplaceholder.typicode.com/posts/", fetcherFunc);