在React中,我经常在setState()
(或api交互(之后的其他操作中使用常量的状态,但当代码的该部分运行时,状态通常还没有更新,大多数情况下会导致错误/意外行为。
是否有处理此问题的最佳实践?还是useState
本身的推荐替代方案?
谢谢:(
您可以在状态更改后使用useEffect
来执行函数,但此方法也会激发useEffect
内部的第一个呈现,为了解决此问题,您需要创建一个自定义挂钩
const [age, setAge] = useState(0)
useEffect(() => {
console.log('the age has changed', age)
}, [age])
如果没有钩子react,setState会得到一个回调函数,但有了钩子,应该使用useEffect
看看
由于setState((是异步的,大多数错误/意外结果都是由于这种行为而发生的,因此您需要通过播放状态来正确理解这种异步行为。若您使用正确的状态处理正确地处理组件生命周期,那个么您就不会看到任何意外的行为。更多信息:https://reactjs.org/docs/state-and-lifecycle.html和https://css-tricks.com/understanding-react-setstate/