1
我問自己是否有乾淨,正確的方式使用setState
來交換數組中的兩個對象。這是我目前所做的:交換數組中的兩個對象:ReactJS
export function moveStepUp(index) {
if(index > 0){
let currentStep = this.state.stepsData[index];
let stepAbove = this.state.stepsData[index - 1];
this.setState((prevState) => ({
stepsData: prevState.stepsData.map((step, i) => {
if(i === index - 1)
return {
...currentStep,
position: i
};
if(i === index)
return {
...stepAbove,
position: i
};
return step;
})
}),() => console.log(this.state.stepsData));
}
}
此代碼正在工作,但我認爲可能有更好的解決方案。對於這樣一個簡單的任務,似乎有太多的代碼行。謝謝!
它的工作原理,謝謝!我只是想看看是否有一個順利的選擇使用'setState'來完成。但是這看起來很乾淨! – Nocebo
很高興它幫助你:)一個建議總是嘗試先執行計算,然後使用setState更新狀態值,而不是將邏輯放入setState中。 –