我是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.
我先尝试this.setState({data: someArray});
然后this.replaceState({test: someArray});
再进行console.logging它们,发现state
现在同时具有data
和test
。
然后,我this.setState({data: someArray});
依次尝试this.setState({test: someArray});
,然后进行console.logging它们,发现它们state
又具有data
和test
。
那么,两者之间到底有什么区别?
由于
replaceState
现已弃用,因此这是一个非常简单的解决方法。尽管您很少/应该诉诸于此。删除状态:
或者,如果您不想多次拨打
setState
本质上,该状态下的所有先前键现在都返回
undefined
,可以很容易地用一条if
语句过滤掉:在JSX中:
最后,要“替换”状态,只需将新状态对象与旧状态副本合并为
undefined
,然后将其设置为state即可: