在我的状态更改处理我应该需要做到以下几点:如果prev和next状态相同,会引发状态变化吗?
deviceSize = ...
this.setState((prevState) => {
if (prevState.deviceSize != deviceSize) {
return {
deviceSize
}
} else {
return null
}
})
或者是下面的足够
this.setState((prevState) => {
return {
deviceSize
}
})
我担心的是,如果我回来的东西会做一些UI更新。
如果状态是一样的上调用setState只能调用,那么会有什么更新。 TL; DR你的第二个例子就足够了,如果你的组件是纯的 – FuzzyTree
如果没有状态变化,你为什么要调用set状态?你不应该这样做 –
如果shouldComponentUpdate返回true(或者没有shouldComponentUpdate),调用setState将**总是**触发一个shouldComponentUpdate和render函数的完整运行。 –