2 回答

TA貢獻1886條經驗 獲得超2個贊
只需創建一個自定義掛鉤即可為您獲取數據。我不建議把這個鉤子綁inputValue那么多。此外,.map 格式也不通用。
export function useFetchData(inputValue: string, fetchURL: string) {
const [items,setItems] = useState([]);
useEffect(() => {
async function fetchData() {
if (inputValue !== null && inputValue.length > 1) {
try {
const request = await axios.get(fetchURL)
const items = request.data.results.map((res: any) => {
return {
lat: res.geometry.lat,
lng: res.geometry.lng,
address: res.formatted
}
})
setItems(items)
} catch (error) {
console.error(error)
}
}
}
}, [inputValue]);
return items;
}
之后你可以像這樣使用這個自定義鉤子
const items = useFetchData(inputValue, "/api/<endpoint>);

TA貢獻1921條經驗 獲得超9個贊
我想您可以將 setItems 作為回調函數作為參數傳遞給您的 fetchData 函數。
fetchData(inputValue: string, fetchURL: string, setItems) { ... }
添加回答
舉報