React.js中的setState与replaceState

我是React.js库的新手,我正在浏览一些教程,发现了:

  • this.setState
  • this.replaceState

给出的说明不是很清楚(IMO)。

setState is done to 'set' the state of a value, even if its already set 

in the 'getInitialState' function.

同样,

The replaceState() method is for when you want to clear out the values 

already in state, and add new ones.

我先尝试 然后 再进行console.logging它们,发现state现在同时具有datatest

然后,我 依次尝试 ,然后进行console.logging它们,发现它们state又具有datatest

那么,两者之间到底有什么区别?

回答:

setState当前和以前的状态合并。使用replaceState,它将抛出当前状态,并仅用您提供的状态替换它。通常setState使用该命令,除非由于某些原因确实需要删除密钥;但是将它们设置为false

/ null通常是更明确的策略。

虽然有可能改变。replaceState当前使用传递的对象作为状态,即状态,replaceState(x)一旦设置this.state ===

x。这比轻一些setState,因此如果成千上万的组件频繁设置其状态,则可以将其用作优化。

我用这个测试用例断言了这一点。


如果您的当前状态是{a: 1},并且您打电话this.setState({b: 2}); 当应用状态时,它将为{a: 1, b:

2}。如果你打电话,this.replaceState({b: 2})你的状态将是{b: 2}

旁注:状态不是立即设置的,因此this.setState({b: 1}); console.log(this.state)在测试时不要这样做。

以上是 React.js中的setState与replaceState 的全部内容, 来源链接: utcz.com/qa/426350.html

回到顶部