React - 运行 useEffect 和元素点击的函数?
React - Run a function on useEffect and on element click?
我在 useEffect 挂钩中有一个函数向我的服务器请求一些数据:
useEffect(() => {
const reqFn = async () => {
// req code...
setState(req result)
}
return reqfn()
},[setState])
此外,当用户单击按钮请求不同的数据时,我需要 运行 此函数(reqFn 使用 useState 值作为服务器请求的道具)。
我试过将 reqFn() 放在 useEffect 之外,但这会使 运行ning reqFn 陷入循环。
我怎样才能做到这一点?
正如我从你的问题中看到的那样,你需要在第一次渲染中使用 api 数据,然后你只需单击即可处理更新。所以你可以在没有状态回调的情况下使用 useEffect
并使用 onClick
处理其余的
const reqFn = async () => {
// req code...
setState(req result)
}
useEffect(() => {
reqfn()
},[])
<>
...
//Rest of your component
<button onClick={reqFn}>Click</button>
...
</>
我在 useEffect 挂钩中有一个函数向我的服务器请求一些数据:
useEffect(() => {
const reqFn = async () => {
// req code...
setState(req result)
}
return reqfn()
},[setState])
此外,当用户单击按钮请求不同的数据时,我需要 运行 此函数(reqFn 使用 useState 值作为服务器请求的道具)。
我试过将 reqFn() 放在 useEffect 之外,但这会使 运行ning reqFn 陷入循环。 我怎样才能做到这一点?
正如我从你的问题中看到的那样,你需要在第一次渲染中使用 api 数据,然后你只需单击即可处理更新。所以你可以在没有状态回调的情况下使用 useEffect
并使用 onClick
const reqFn = async () => {
// req code...
setState(req result)
}
useEffect(() => {
reqfn()
},[])
<>
...
//Rest of your component
<button onClick={reqFn}>Click</button>
...
</>