1
有一個React組件,其狀態是一個svg元素數組。在每次更新中,此數組中只有1個元素可能會更改。我想從反應提供的明智和快速的渲染中受益。我使用下面的代碼來更新狀態和渲染。替換元素處於陣列狀態(並從ReactJS快速渲染中受益)
render: function() {
return (
<div>
<svg width={Common.boardWidth} height={Common.boardHeight}>
{this.state.grid}
</svg>
</div>
);
}
_setNewState: function(index , newState){
this.setState(function(state){
return({
grid: state.grid[index].splice(index,1,newState)
});
});
},
_setNewState
每當我們收到狀態的新改變時都會被調用。
我的問題:
1.How我可以替換數組狀態的元素仍然陣營的快速渲染中獲益?目前的方法能夠快速呈現反應嗎?或者隨着數組的變化,整個事情會再次呈現?即使那些沒有改變的元素?
2.這種情況下最好的方法是什麼?我們是否需要有一個狀態數組而不是狀態數組?
注意:此數組中的每個元素都是一個具有唯一鍵的SVG元素。
實際上,在'setInitialState'中,我創建了帶有唯一鍵的'SVG'的初始數組。在每次後續更新中,只有1個特定的SVG元素被更改。 –
那麼你的問題是回答不是嗎? – Eelke
好吧,你說「重構你的代碼......」,我已經在代碼中提到了我在評論中所說的內容,所以我想也許你的意思是別的......我已經有'id'的'SVG'元素了,秒。 –