NISHIO Hirokazu[Translate]
まとめて保存
問題
iPadで書いたものをPCで見ている場合に、複数パスを選択して移動すると1パスずつ移動と再描画が行われる
原因
useEffectでstate.itemsの変化をトリガーとしてsaveToServerしていた。
対処
useEffectでフラグが立ってなければsetTimeout、フラグを立てる
フラグが立っていれば何もせずにスルー
setTimeoutがfireしたタイミングでsaveToServer

ts
let toSave = false; useEffect(() => { if (toSave) { // do nothing } else { toSave = true; setTimeout(() => { toSave = false; saveToServer(isReadOnly, state, mapname) }, 100) } }, [state.items]);

"Engineer's way of creating knowledge" the English version of my book is now available on [Engineer's way of creating knowledge]

(C)NISHIO Hirokazu / Converted from [Scrapbox] at [Edit]