【问题标题】:How to know what changed React State如何知道什么改变了 React State
【发布时间】:2020-12-13 05:23:28
【问题描述】:

我正在尝试解决我的 React 代码中的一个问题,其中状态内的引用会自行更改。我在该参考上调用setState 的每个点都添加了日志。但是,没有调用任何点。我想知道还有什么可能导致该状态发生变化。这样做的可能方法是什么?

【问题讨论】:

  • 您应该发布代码示例以更好地回答问题。 React 中的状态对象永远不应该被改变,但是一个常见的错误来源是在不调用 setState 的情况下改变状态对象。检查你是否在不调用 setState 的情况下间接改变状态对象,或者你正在改变它的一些通过引用存储的嵌套属性。
  • 您最好在调试器中的setState 调用处设置一个断点,然后查看调用堆栈。

标签: reactjs react-state


【解决方案1】:

您可以使用componentDidUpdate

componentDidUpdate(prevProps, prevState) {
      if (prevState.pokemons !== this.state.pokemons) {
        console.log('pokemons state has changed.')
      }
    }

【讨论】:

  • 您好,感谢您的意见,但是,我正在尝试查找谁更改了 this.state.pokemons
  • 您可以在整个代码库中检查setState({pokemons})。我认为我们没有其他选择
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-30
相关资源
最近更新 更多