我正在學習 React,我正在嘗試呼叫 poke api,但我有無限回圈,我真的不知道我在做什么。這是我的應用程式
使用Axios.ts
import axios from 'axios';
import { useState, useEffect } from 'react';
import Request from '../interfaces/request';
const useAxios = (request: Request) => {
const client = axios.create({
baseURL: "https://pokeapi.co/api/v2"
});
const [response, setResponse] = useState(null);
const [error, setError] = useState('');
const fetchData = async () => {
const response = await client[request.method](request.url,request.body)
if(response.status <= 399){
setResponse(response.data);
}
else{
setError(response.statusText);
}
};
useEffect(() => {
fetchData();
}, [request]);
return { response, error };
};
export default useAxios;
這是觀點
import Pokecard from "../components/pokecard/Pokecard";
import { Methods } from "../interfaces/request";
import axios from '../plugins/Useaxios';
function App2() {
const response = axios({
url: '/pokemon/ditto',
method: Methods['get'],
body: JSON.stringify({}),
headers: JSON.stringify({})
})
console.log(response)
return (
<>
<Pokecard />;
</>
);
}
export default App2;
我嘗試使用 useEffect 但沒有結果我不知道我是否做錯了
uj5u.com熱心網友回復:
您應該request從依賴項陣列中洗掉,因為這會導致無限回圈。當fetchData設定新的狀態、錯誤或回應時,它將觸發組件中的重新渲染,App2這將觸發useAxios等...
useEffect(() => {
fetchData();
}, []);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/534237.html
標籤:反应打字稿公理
下一篇:NavigationReactNativewithFormik-錯誤:Undefinedisnotanobject(evaluating'navigation.navigate')
