Closed yo16 closed 2 months ago
2つの対策を実施
フック通知の関係ではなく(少なくともそれだけではなく)、
LineageCanvas.tsx でuseEffect
内でtableStructs
を更新していたことが原因だった。
useEffect
で更新される前に、一度以前のtableStructs
で描画され、その際に子要素たちのuseState
を通りstateが初期化され、useEffect
でtableStructs
が更新された後にもう一度描画されるときにはuseState
の初期化が行われないことが根本原因。
対応は、初めてのLineageCanvasの描画時に、tableStructs
を正しく更新されることなので、useEffect
ではなくuseMemo
でtableStructs
を更新するように変更した。
(子たちを、2度目の描画でも初期化することは本質的な対応ではない)
2 と同じ問題再来。
ColumnBoxを実装する前までは起きていなかった気がするけど、とにかく今は起きる。
4の後に1でも、columnだけだけど、同様。
原因は、非同期処理のタイミングの問題と思われる。難しい。