下面的示例将引发警告,指出someState
应包含在useEffect
的依赖项数组中,但是我不希望对someState
进行更改以触发运行useEffect
。
那么,如何确保该函数在使用更新版本的someState
运行时someTrigger
运行?
import React, { useState, useEffect } from 'react'
function someFunction() {
const [someTrigger, setSomeTrigger] = useState(null)
const [someState, setSomeState] = useState({})
useEffect(() => {
async function postSomething() {
const response = await fetch('somePath',
method: 'POST',
body: JSON.stringify(someState),
})
...
}
postSomething()
} [someTrigger])
return <SomeComponent />
}
如果需要postSomething
响应某个事件,最好直接将其称为事件处理程序,而不是经历效果:
<SomeComponent onEvent={() => postSomething() } />
如果由于某种原因对您不起作用并且您需要效果,则可以忽略警告。