繁体   English   中英

在道具更新上重新渲染组件

[英]Re-render component on props update

我想这是一个简单的问题,但是这里有:有一种方法可以指示您的组件在道具更改时重新渲染? 我将组件连接到redux存储,该存储在某个操作上会更新状态,然后将其过滤到props中,然后我希望该应用响应更改。

我猜你会使用componentDidUpdate()吗?

就像是:

// ...
componentDidUpdate(prevProps, prevState) {
   if (prevProps !== this.props) {
      // re-render x <-- not sure how to do this
   }
}

再加上重新渲染整个组件的方法是什么,以及重新渲染更新的道具的方法是什么?

任何帮助表示赞赏。

您可以使用

componentWillReceiveProps (props){
 this.doSomething(props) // To some function.
 this.setState({data: props}) // This will update your component.
}

如果您的道具需要改变状态,那么您将获得无限循环。

顺便看看这里的Reacts生命周期,可能也会有所帮助。

您可以在方法中调用this.forceUpdate() 另一种方法是this.setState(this.state)

样式化组件不更新<div>重新渲染后</div><div id="text_translate"><p>我有一个基于 switch 语句呈现的反应组件。 我正在更新开关基于的 state,但它没有</p><pre>switch (condition) { case Condition1: default: return ( &lt;Condition1Component /&gt; ); case Condition2: return ( &lt;Condition2Component /&gt; ); case Condition3: return ( &lt;Condition3Component /&gt; ); }</pre><p> 所有三个组件都被包装在自己的样式中div 。</p><p> 当我 go 从默认 state 到Condition3时, Condition3组件被包裹在Condition1 styled div周围,这很奇怪。</p><p> 当我将我的默认 state 更改为Condition3时,一切都按预期工作。</p></div>

[英]Styled Component does not update the <div> after a re-render

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM