Reflecting update provider value when user begin/end manual rest duration #606
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Abstract
手動での休薬を開始/終了した場合にRecordPageStateが更新されない
トレースしてみたところ、recordPageAsyncStateProviderには変更が2回きている(1回多い気がするけどそれは気にしない)。その後の recordPageStateNotifierProvider に変更通知が来てないためページが更新されていなかった
なお、休薬開始→UI変わらない→休薬開始をした場合にはUIは更新される。その場合に restDuration.endDate が nullのデータが2つ作られる。
原因がRiverpodのコードを読んでもパッとわからなかった。暫定策として、DateTime timestampをStateに追加する。この予想としてはネストした値だとうまくいかない(RiverpodがStateの比較を行なっている。freezedの比較がネストした場合にうまくいってない)と仮定して修正を行い実行したところ、期待通り作動した。ただ、コード読んだ限りだとselectでしか比較は使われてない気もするので関係なさそう。とりあえず治ったのでこのままで行く
ついでにRecordPageSateNotifier,RecordPageStateにautoDisposeをつけた。よく考えたらほしかった。↑の修正と一緒に行ってしまったため、因果関係は正確なところは不明
Why
Links
Checked