记录 setState 调用

Eri*_*ing 5 reactjs

在redux中,您可以通过控制台记录reducer中收到的操作来调试状态问题,是否有类似的方法可以使用setState api来做到这一点?

我有一个相当大的抽象代码库并尝试调试某个问题,而不是仅仅在属性上查找 setState 调用那么简单

The*_*son 4

来自React文档:

  1. setState将回调作为第二个参数

setState() 的第二个参数是一个可选的回调函数,一旦 setState 完成并且组件重新渲染,该函数将被执行

因此,在回调函数中执行一些调试可能会对您有所帮助。

  1. 另一种方法是使用comonentDidUpdate

更新发生后立即调用 componentDidUpdate()。初始渲染时不会调用此方法

componentDidUpdate(prevProps, prevState)

根据您的逻辑,您可以在这里做同样的事情:

componentDidUpdate(prevProps, prevState){
  if(this.state.foo !== prevState.foo){
    console.log('FOO')
  } 
}
Run Code Online (Sandbox Code Playgroud)

希望它能帮助你