我正在嘗試使用 setState 設定狀態,它需要默認為來自 React-query 的資料,但在重繪 時顯示undefined.
const fetchAlerts = async () => {
const res = await fetch('https://jsonplaceholder.typicode.com/todos');
return res.json();
};
const { data, status } = useQuery('todos', fetchTodos, {
staleTime: 5000,
});
const result = data;
const [fetchData, setFetchData] = React.useState<ITodo[]>(result);
然后我映射狀態物件,如:
{fetchData.map() etc}
uj5u.com熱心網友回復:
像這樣的事情應該有效。有關作業示例,請參見此處的代碼和框。
function Example() {
const [fetchedData, setFetchedData] = React.useState([]);
const fetchTodos = async () => {
const res = await fetch("https://jsonplaceholder.typicode.com/todos");
return res.json();
};
const { data: result } = useQuery("todos", fetchTodos, {
staleTime: 5000
});
React.useEffect(() => {
setFetchedData(result);
}, [result]);
return <p>{JSON.stringify(fetchedData)}</p>;
}
uj5u.com熱心網友回復:
我在沙箱中設定了一個作業示例,您需要設定狀態資料useEffect并包裝您的應用程式QueryClientProvider才能userQuery成功使用“只是提一下”
沙盒鏈接
// 警報組件
import React, { useEffect } from "react";
import { useQuery } from "react-query";
import "./styles.css";
interface ITodo {
userId: string;
id: string;
title: string;
}
const fetchAlerts = async () => {
const res = await fetch("https://jsonplaceholder.typicode.com/todos");
return res.json();
};
export default function Component() {
const [fetchData, setFetchData] = React.useState<ITodo[]>([]);
const { data, status } = useQuery<ITodo[]>("mytodos", fetchAlerts, {
staleTime: 5000
});
useEffect(() => {
setFetchData(data ?? []);
}, [data]);
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
{fetchData.map((x) => (
<li>
{" "}
{x.userId} - {x.id} - {x.title.substr(10)}
</li>
))}
</div>
);
}
// 應用組件
import "./styles.css";
import Component from "./component";
import { QueryClient, QueryClientProvider } from "react-query";
export default function App() {
const queryClient = new QueryClient();
return (
<QueryClientProvider client={queryClient}>
<div className="App">
<Component />
</div>
</QueryClientProvider>
);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/326531.html
標籤:javascript 反应 打字稿 反应查询
