【发布时间】:2021-10-14 07:52:19
【问题描述】:
我很好奇使用 useEffect 钩子处理 API 调用与仅在效果之外处理 API 的区别。
例如,使用useEffect,您可能会执行类似的操作
const MyComponent = () => {
const [myState, setMyState] = useState([])
const [trigger, setTrigger] = useState(false)
useEffect(() => {
const getData = async () => {
const callMyApi = await fetch('http://someApi.com')
setMyState(await callMyApi.json()
}
if(trigger) {
getData()
}
}, [trigger])
return (
<button onClick={setTrigger(true)}>Click me</button>
)
}
Vs,删除useEffect
const MyComponent = () => {
const [myState, setMyState] = useState([])
const getData = async () => {
const callMyApi = await fetch('http://someApi.com')
setMyState(await callMyApi.json()
}
return (
<button onClick={getData()}>Click me</button>
)
}
该代码并不准确。 但关键是,使用钩子,不使用useEffect 处理是否存在陷阱获取数据和更新状态?
【问题讨论】:
标签: reactjs react-hooks fetch use-effect use-state