与
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)在测试时不要这样做。


