在redux中,您可以控制日志记录在reducer中收到的操作以调试状态问题,是否有类似的方法使用setState api?
我有一个相当大的抽象代码库并尝试调试某个问题,而不是只在属性上查找setState调用
答案 0 :(得分:2)
来自React
docs:
setState
将回调作为第二个参数setState()的第二个参数是一个可选的回调函数,它将在setState完成并重新呈现组件后执行
因此,在回调函数中执行某些调试可能会有所帮助。
comonentDidUpdate
在更新发生后立即调用componentDidUpdate()。初始渲染不会调用此方法
componentDidUpdate(prevProps, prevState)
取决于你的逻辑,你可以在这里做同样的事情:
componentDidUpdate(prevProps, prevState){
if(this.state.foo !== prevState.foo){
console.log('FOO')
}
}
希望它能帮到你
答案 1 :(得分:0)
假设您的组件正在扩展React Component,您可以在组件类中添加此方法以记录setState方法:
setState(newState) {
const { state } = this;
console.log('prevState ');
console.log(state);
console.log('newState ');
console.log(newState);
super.setState(newState);
}