我有一个组件,其中没有componentWillRecieveProps,没有其他功能正在改变状态,尽管每当商店更新时,组件(包装在连接中)都会被重新呈现(这是我想要的但我不明白如何没有国家它正在发生)。我知道连接为组件提供了新的道具,如果它们已经改变但是这会导致组件重新渲染吗?
答案 0 :(得分:3)
简短的回答是,是的,道具的改变会导致组件重新渲染。查看生命周期方法shouldComponentUpdate
可能会有所帮助。每次props
或state
更改时,React都会调用此函数以确定组件是否应重新呈现。它看起来像这样:
shouldComponentUpdate(nextProps, nextState) {
// return boolean
}
如果返回true,则组件将更新,如果返回false,则不会重新呈现。
如果我们不将此方法添加到组件中,则使用默认实现,即:
shouldComponentUpdate(nextProps, nextState) {
return true;
}
即。总是更新道具/状态变化。
有时候,在生命周期方法中实现某些逻辑只能在必要时进行更新,但是大多数情况下默认情况下(总是返回true)工作正常。