首页 > 解决方案 > React 状态在其分配的变量发生变化时发生变化

问题描述

我被 React 的一个奇怪问题困住了。

this.state={
      testState: { testValue: "Test State" }
}
   
testFn = () => {
        let a;
        a = this.state.testState
        a.testValue = "Debugging is awesome";
        console.log(this.state.testState)
    }

如果我对分配的变量进行了任何更改a,那么它也会反映在状态中。

我在控制台中得到的是,

{testValue: "Debugging is awesome"}.

任何帮助都将是可观的

编辑: 我不想改变状态。我必须在a不改变状态的情况下进行修改。我怎样才能做到这一点?

标签: javascriptreactjsstate

解决方案


状态会发生变化,因为您的变量a包含对 的引用testState。这是一个无操作。你不应该直接改变它,只使用setStatereact 提供的功能。

this.setState({ testState: { testValue: "Debugging is awesome" } });

如果您不想更改状态,可以使用扩展运算符:

let a = { ...this.state.testState };

推荐阅读