【发布时间】:2022-01-16 19:14:03
【问题描述】:
在每次调用 API 时,我都会获得一个新的图片链接(https://dog.ceo/api/breeds/image/random 这是我正在调用的 API),我正在使用 useEffect 挂钩并调用 API。
每次单击按钮时,我都想点击 API,获取新值并重新渲染图像。
当我将“dog”作为依赖项传递给useEffect 时,我进入了一个无限循环,我想要的只是单击要更新图像的按钮。
const [dog, setDog] = useState('')
useEffect(() => {
const getDogs = async () => {
const dogsFromServer = await fetchDogs()
setDog(dogsFromServer.message)
}
getDogs()
}, [])
const fetchDogs = async () => {
const res = await fetch('https://dog.ceo/api/breeds/image/random')
const data = await res.json()
console.log(data.message)
return data
}
const changeDog = ()=> {
alert("changeddog")
}
return (
<div className="App">
<img src={dog}/>
<button onClick={()=>fetchDogs()}>Change Image<button/>
</div>
);
【问题讨论】:
标签: reactjs react-hooks use-effect