Closed hrk091 closed 1 year ago
とりあえずのNext Action
4も、websocketで取得したデータののcomponent stateが問題っぽい。コードちゃんと見ないといけないけど、トラック変更前のやつを拾ってしまっているっぽい
3は、初期化でRTK Queryで受け取りsetStateした値が、useEffect内で仕込んだwebsocket callbackに対して渡っていないことが原因とわかった。コードを修正しているときは気づかなかったけど、事象に直面してコードを見るとそりゃそうだという感じ。
4は、もう山程failure scenarioがあってよくわからないので、とりあえず再現コードを書いて改修後の確認ができるようにする
4も再現できた。1sごとにmessageが届くscriptを走らせたら簡単に再現した。
trackを切り替えた際に、message classを作り変えているが、これもwebsocket callbackで用いているclassと別のインスタンスを参照してしまっており、resetがちゃんと聞いていないことが原因。
上記を総合して、そもそもRTK Query導入前の実装を踏襲することをやめ、RTK Queryで提供するwebsocketの機能を使うことにする。 また、trackを切り替えたときにredux stateをclearするあたりの考慮も必要。 (simplifyするために、とりあえずchatについては都度refetchするようにしても良いかもしれない)
観測された4つの問題と簡単な考察
対策案
進める上での課題