我有一个父React组件,它有3个子组件,如下所示:
var Parent = React.createClass({
render: function() {
return (<div>
<C1/>
<C2/>
<C3/>
</div>)
}
})
我想根据当前父元素的状态改变子元素的位置。因此,在不同情况下,我需要返回C1,C3,C2或C3,C2,C1等。 但是我希望在不重新渲染子元素的情况下完成这个操作。 我试图在每个子元素上使用shouldComponentUpdate,但对于在父组件的渲染方法中没有改变其位置的组件也会被调用。 因此,如果最初返回C1,C2,C3,然后返回C2,C1,C3,则shouldComponentUpdate将为C3调用,但不会为C1或C2调用。在这种情况下,我可以在C3内返回false并防止重新渲染,但我不明白为什么应该为改变了位置的子元素调用shouldComponentUpdate。
有什么建议吗?谢谢。
shouldComponentUpdate
的呢?请记住,shouldComponentUpdate
是一个函数,它应该告诉React 何时 更新,而不仅仅是返回true
或false
。 - Akshat Mahajanvar C1 = React.createClass....
var C2 = React.createClass....
.... - Valeriu Mazare<TodoList/>
,那么每个子组件都将是<Todo/>
。这是这种情况吗? - Michael Parker