如何在useEffect中包含状态/道具而不成为触发器?



下面的示例将引发警告,指出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() } />

如果由于某种原因对您不起作用并且您需要效果,则可以忽略警告。

相关内容

  • 没有找到相关文章

最新更新